From d37d44302153a44a895e19c5bd3c11e9dae202f5 Mon Sep 17 00:00:00 2001 From: James Eversole Date: Mon, 11 May 2026 09:18:47 -0500 Subject: [PATCH] feat(php): use new FFI for Arboricx --- AGENTS.md | 11 +- ext/php/run.php | 218 ++++++++------- ext/php/src/codecs.php | 179 ------------ ext/php/src/ffi.php | 138 ++++++++++ ext/php/src/functions.php | 255 ------------------ ext/php/src/kernel.php | 53 ---- .../src/kernel_run_arboricx_to_string.ternary | 1 - flake.nix | 55 +++- 8 files changed, 305 insertions(+), 605 deletions(-) delete mode 100644 ext/php/src/codecs.php create mode 100644 ext/php/src/ffi.php delete mode 100644 ext/php/src/functions.php delete mode 100644 ext/php/src/kernel.php delete mode 100644 ext/php/src/kernel_run_arboricx_to_string.ternary diff --git a/AGENTS.md b/AGENTS.md index 2efdced..8fdc73c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -63,7 +63,7 @@ Arboricx is the portable executable-object format used by tricu. The project now | **tricu (self-hosted)** | `kernel_run_arboricx_typed.dag` | A self-hosting Arboricx parser/executor written in tricu itself. Used as a kernel inside the Zig host for maximum portability ("cool but useless" — ~3s for `append`) | | **Zig** | `ext/zig/` | **Production host** — native bundle parser, WHNF reducer, C ABI (`libarboricx.so` / `.a`), CLI (`tricu-zig`), Python FFI support | | **JavaScript (Node)** | `ext/js/` | Native bundle parser, manifest decoder, Merkle DAG verifier, Tree Calculus reducer, CLI runner | -| **PHP** | `ext/php/` | Tree Calculus reducer, codecs, kernel loader, CLI runner | +| **PHP** | `ext/php/` | FFI wrapper around `libarboricx.so`, CLI runner | All hosts share the same bundle format and Merkle hashing scheme. @@ -240,6 +240,8 @@ The kernel path is kept as a "cool but useless" fallback — the DAG is tiny (~3 | `packages.default` / `packages.tricu` | Haskell tricu package | | `packages.tricu-zig` | Zig CLI + `libarboricx.a` + `libarboricx.so` + `arboricx.h` | | `packages.tricu-zig-tests` | **Separate test target** — C ABI + native bundle + Python FFI tests | +| `packages.tricu-php` | PHP source + `libarboricx.so` + `tricu-php` wrapper script | +| `packages.tricu-php-tests` | **Separate test target** — PHP FFI tests against fixture bundles | | `packages.tricu-container` | Docker image | | `checks.default` / `checks.tricu` | Haskell test suite via Tasty/HUnit | @@ -287,12 +289,9 @@ tricu/ │ │ │ ├── codecs.js │ │ │ └── cli.js │ │ └── test/ -│ ├── php/ # PHP bundle loader + reducer +│ ├── php/ # PHP FFI host for libarboricx.so │ │ ├── src/ -│ │ │ ├── functions.php -│ │ │ ├── codecs.php -│ │ │ ├── kernel.php -│ │ │ └── Tree/ +│ │ │ └── ffi.php │ │ └── run.php │ └── zig/ # Zig production host │ ├── build.zig diff --git a/ext/php/run.php b/ext/php/run.php index 782991e..1275fa2 100644 --- a/ext/php/run.php +++ b/ext/php/run.php @@ -4,32 +4,81 @@ declare(strict_types=1); /** - * run.php — Self-hosted Arboricx PHP host shell. + * run.php — Arboricx PHP host shell via libarboricx C ABI. * * Usage: - * php run.php run [arg ...] + * php run.php run [args...] * php run.php inspect - * - * The "run" command: - * 1. Reads the .arboricx bundle as raw bytes - * 2. Encodes bundle bytes as a Tree Calculus byte list - * 3. Encodes each host argument (string or number) - * 4. Calls runArboricxToString via the hardcoded kernel - * 5. Unwraps ok/err, then Host ABI envelope - * 6. Decodes the string payload - * - * This is a minimal host shell — it does NOT parse Arboricx bundles itself. - * The kernel handles bundle parsing internally. */ -require __DIR__ . '/src/functions.php'; -require __DIR__ . '/src/codecs.php'; -require __DIR__ . '/src/kernel.php'; +require __DIR__ . '/src/ffi.php'; -use Arboricx\Node; -use function Arboricx\{app, reduce, ofString, ofNumber, ofBytes, ofList, - formatTree, unwrapResult, unwrapHostValue, decodeHostPayload, - getRunArboricxToString}; +use function Arboricx\{ctx_init, ctx_free, loadBundleDefault, ofNumber, ofString, app, reduce, toString, toBool, toNumber}; + +// ── Locate libarboricx.so ────────────────────────────────────────────────── + +function findLib(): string +{ + $env = getenv('ARBORICX_LIB'); + if ($env !== false && file_exists($env)) { + return $env; + } + + $paths = [ + __DIR__ . '/../../zig/zig-out/lib/libarboricx.so', + '/usr/local/lib/libarboricx.so', + '/usr/lib/libarboricx.so', + './libarboricx.so', + ]; + foreach ($paths as $p) { + if (file_exists($p)) { + return $p; + } + } + + fwrite(STDERR, "Error: libarboricx.so not found.\nSet ARBORICX_LIB to its full path.\n"); + exit(1); +} + +// ── Decode helpers ───────────────────────────────────────────────────────── + +function decode(\FFI\CData $ctx, int $root): string +{ + // Bool first: false is Leaf, which is also a valid empty string/list. + try { + return toBool($ctx, $root) ? 'true' : 'false'; + } catch (\Throwable $e) { + try { + return toString($ctx, $root); + } catch (\Throwable $e2) { + try { + return (string) toNumber($ctx, $root); + } catch (\Throwable $e3) { + throw new \RuntimeException('could not decode result'); + } + } + } +} + +function decodeType(\FFI\CData $ctx, int $root): string +{ + try { + toBool($ctx, $root); + return 'bool'; + } catch (\Throwable $e) { + try { + toString($ctx, $root); + return 'string'; + } catch (\Throwable $e2) { + try { + toNumber($ctx, $root); + return 'number'; + } catch (\Throwable $e3) { + return 'unknown (raw tree)'; + } + } + } +} // ── Commands ───────────────────────────────────────────────────────────────── @@ -47,94 +96,43 @@ function readBundle(string $path): string return $bytes; } -function cmdRun(string $bundlePath, array $args): void +function cmdRun(string $libPath, string $bundlePath, array $args): void { - $bundleBytes = readBundle($bundlePath); - - $kernel = getRunArboricxToString(); - if ($kernel === null) { - fwrite(STDERR, "Error: runArboricxToString kernel not configured\n"); - exit(1); - } - - $bundleTree = ofBytes($bundleBytes); - - $argTrees = []; - foreach ($args as $arg) { - $argTrees[] = encodeArg($arg); - } - $argsTree = ofList($argTrees); - - // Kernel application: runArboricxToString bundle args - $expr = app(app($kernel, $bundleTree), $argsTree); - fwrite(STDERR, "Reducing kernel application...\n"); - $result = reduce($expr, 1_000_000_000_000); - - // The kernel returns an ok/err pair. On ok, the value is a - // Host ABI envelope: Fork(tag_number, payload_tree). - [$kind, $value, $rest] = unwrapResult($result); - if ($kind === 'error') { - fwrite(STDERR, "Error detail: $rest\n"); - exit(1); - } - if ($kind === 'err') { - [$ok2, $code] = Arboricx\toNumber($value); - $codeStr = $ok2 ? (string)$code : formatTree($value); - fwrite(STDERR, "Arboricx error code: $codeStr\n"); - fwrite(STDERR, "Rest: " . formatTree($rest) . "\n"); - exit(1); - } - - [$tag, $payload] = unwrapHostValue($value); - + $ctx = ctx_init($libPath); try { - $decoded = decodeHostPayload($tag, $payload); - echo $decoded['value'] . "\n"; - } catch (\Throwable $e) { - fwrite(STDERR, "Host ABI decode error: " . $e->getMessage() . "\n"); - fwrite(STDERR, "Raw tag: $tag, payload: " . formatTree($payload) . "\n"); - exit(1); - } -} + $term = loadBundleDefault($ctx, readBundle($bundlePath)); -function encodeArg(string $arg): Node -{ - return ctype_digit($arg) ? ofNumber((int)$arg) : ofString($arg); -} - -function cmdInspect(string $bundlePath): void -{ - $bundleBytes = readBundle($bundlePath); - $bytes = strlen($bundleBytes); - echo "Bundle: $bundlePath\n"; - echo "Size: $bytes bytes\n"; - - // Run with no arguments to see the default export - $kernel = getRunArboricxToString(); - if ($kernel === null) { - fwrite(STDERR, "Warning: kernel not configured, skipping execution\n"); - return; - } - - $bundleTree = ofBytes($bundleBytes); - $emptyArgs = ofList([]); - $result = reduce(app(app($kernel, $bundleTree), $emptyArgs), 10_000); - [$kind, $value, $rest] = unwrapResult($result); - - if ($kind === 'ok') { - echo "\nResult (ok):\n"; - try { - [$tag, $payload] = unwrapHostValue($value); - $decoded = decodeHostPayload($tag, $payload); - echo " Tag: $tag (type: " . $decoded['type'] . ")\n"; - echo " Value: " . $decoded['value'] . "\n"; - } catch (\Throwable $e) { - echo " Raw: " . formatTree($value) . "\n"; + foreach ($args as $arg) { + $argTree = preg_match('/^\d+$/', $arg) ? ofNumber($ctx, (int)$arg) : ofString($ctx, $arg); + $term = app($ctx, $term, $argTree); } - } else { - echo "\nResult (err):\n"; - [$ok, $code] = Arboricx\toNumber($value); - echo " Code: " . ($ok ? (string)$code : formatTree($value)) . "\n"; + + $result = reduce($ctx, $term, 1_000_000_000); + echo decode($ctx, $result) . "\n"; + } finally { + ctx_free($ctx); + } +} + +function cmdInspect(string $libPath, string $bundlePath): void +{ + $ctx = ctx_init($libPath); + try { + $bundle = readBundle($bundlePath); + echo "Bundle: $bundlePath\nSize: " . strlen($bundle) . " bytes\n\nResult:\n"; + + $term = loadBundleDefault($ctx, $bundle); + $result = reduce($ctx, $term, 1_000_000_000); + + $type = decodeType($ctx, $result); + try { + $value = decode($ctx, $result); + } catch (\RuntimeException $e) { + $value = '(raw tree)'; + } + echo " Type: $type\n Value: $value\n"; + } finally { + ctx_free($ctx); } } @@ -144,31 +142,31 @@ $argv = $_SERVER['argv'] ?? []; $argc = $_SERVER['argc'] ?? 0; if ($argc < 2) { - echo "Arboricx PHP Host Shell\n"; - echo "\nUsage:\n"; + echo "Arboricx PHP Host Shell (via libarboricx C ABI)\n\nUsage:\n"; echo " php run.php run [args...]\n"; echo " php run.php inspect \n"; exit(0); } +$libPath = findLib(); $command = $argv[1]; + switch ($command) { case 'run': if ($argc < 3) { fwrite(STDERR, "Usage: php run.php run [args...]\n"); exit(1); } - cmdRun($argv[2], array_slice($argv, 3)); + cmdRun($libPath, $argv[2], array_slice($argv, 3)); break; case 'inspect': if ($argc < 3) { fwrite(STDERR, "Usage: php run.php inspect \n"); exit(1); } - cmdInspect($argv[2]); + cmdInspect($libPath, $argv[2]); break; default: - echo "Unknown command: $command\n"; - echo "Usage: php run.php run|inspect ...\n"; + fwrite(STDERR, "Unknown command: $command\nUsage: php run.php run|inspect ...\n"); exit(1); } diff --git a/ext/php/src/codecs.php b/ext/php/src/codecs.php deleted file mode 100644 index 0a0c3d8..0000000 --- a/ext/php/src/codecs.php +++ /dev/null @@ -1,179 +0,0 @@ -= 0; $i--) { - $result = fork($elements[$i], $result); - } - return $result; -} - -function toList(Node $tree): array -{ - $tree = reduce($tree); - if (isLeaf($tree)) return [true, []]; - if (!isFork($tree)) return [false, 'Invalid Tree Calculus list']; - - [$ok, $rest] = toList(forkRight($tree)); - if (!$ok) return [false, $rest]; - array_unshift($rest, forkLeft($tree)); - return [true, $rest]; -} - -/** - * Strings are lists of byte values (each character encoded as a number tree). - */ -function ofString(string $s): Node -{ - $bytes = []; - for ($i = 0, $len = strlen($s); $i < $len; $i++) { - $bytes[] = ofNumber(ord($s[$i])); - } - return ofList($bytes); -} - -function toString(Node $tree): array -{ - [$ok, $elements] = toList($tree); - if (!$ok) return [false, $elements]; - - $result = ''; - foreach ($elements as $elem) { - [$ok2, $num] = toNumber($elem); - if (!$ok2 || $num < 0 || $num > 255) { - return [false, 'Invalid character code in Tree Calculus string']; - } - $result .= chr($num); - } - return [true, $result]; -} - -function ofBytes(string $s): Node -{ - return ofString($s); -} - -function toBytes(Node $tree): array -{ - return toString($tree); -} - -function unwrapResult(Node $tree): array -{ - $tree = reduce($tree); - if (!isFork($tree)) return ['error', null, 'Result is not a valid ok/err pair']; - - $tag = reduce(forkLeft($tree)); - $restPair = reduce(forkRight($tree)); - if (!isFork($restPair)) return ['error', null, 'Result payload is not a valid pair']; - - $value = forkLeft($restPair); - $rest = forkRight($restPair); - $isTrue = same_tree($tag, stem(leaf())); - return $isTrue ? ['ok', $value, $rest] : ['err', $value, $rest]; -} - -/** - * Host ABI tag constants. - * - * The kernel wraps successful results in a host value envelope: - * Fork(tag_number, payload_tree) - */ -const HOST_TREE_TAG = 0; -const HOST_STRING_TAG = 1; -const HOST_NUMBER_TAG = 2; -const HOST_BOOL_TAG = 3; -const HOST_LIST_TAG = 4; -const HOST_BYTES_TAG = 5; - -function unwrapHostValue(Node $tree): array -{ - $tree = reduce($tree); - if (!isFork($tree)) throw new \InvalidArgumentException('Host ABI value must be a pair'); - - $tag = reduce(forkLeft($tree)); - $payload = forkRight($tree); - [$ok, $tagNum] = toNumber($tag); - if (!$ok) throw new \InvalidArgumentException('Host ABI tag must be a number'); - return [(int)$tagNum, $payload]; -} - -function isBool(Node $tree): bool -{ - $tree = reduce($tree); - return isLeaf($tree) || (isStem($tree) && isLeaf(stemChild($tree))); -} - -function decodeHostPayload(int $tag, Node $payload): array -{ - switch ($tag) { - case HOST_TREE_TAG: - return ['type' => 'tree', 'value' => formatTree($payload)]; - case HOST_STRING_TAG: - [$ok, $str] = toString($payload); - if (!$ok) throw new \InvalidArgumentException('Host ABI string decode failed: ' . $str); - return ['type' => 'string', 'value' => $str]; - case HOST_NUMBER_TAG: - [$ok, $num] = toNumber($payload); - if (!$ok) throw new \InvalidArgumentException('Host ABI number decode failed: ' . $num); - return ['type' => 'number', 'value' => $num]; - case HOST_BOOL_TAG: - if (!isBool($payload)) throw new \InvalidArgumentException('Host ABI bool decode failed'); - return ['type' => 'bool', 'value' => isLeaf(reduce($payload)) ? false : true]; - case HOST_LIST_TAG: - [$ok, $xs] = toList($payload); - if (!$ok) throw new \InvalidArgumentException('Host ABI list decode failed: ' . $xs); - return ['type' => 'list', 'value' => $xs]; - case HOST_BYTES_TAG: - [$ok, $bytes] = toBytes($payload); - if (!$ok) throw new \InvalidArgumentException('Host ABI bytes decode failed: ' . $bytes); - return ['type' => 'bytes', 'value' => $bytes]; - default: - throw new \InvalidArgumentException('Unknown Host ABI tag: ' . $tag); - } -} - - diff --git a/ext/php/src/ffi.php b/ext/php/src/ffi.php new file mode 100644 index 0000000..35a1835 --- /dev/null +++ b/ext/php/src/ffi.php @@ -0,0 +1,138 @@ +arboricx_init(); + if ($ctx === null) { + throw new \RuntimeException('arboricx_init failed'); + } + return $ctx; +} + +function ctx_free(\FFI\CData $ctx): void +{ + ArboricxFFI::ffi()->arboricx_free($ctx); +} + +function app(\FFI\CData $ctx, int $func, int $arg): int +{ + return ArboricxFFI::ffi()->arb_app($ctx, $func, $arg); +} + +function reduce(\FFI\CData $ctx, int $root, int $fuel = 1_000_000_000): int +{ + return ArboricxFFI::ffi()->arb_reduce($ctx, $root, $fuel); +} + +function ofNumber(\FFI\CData $ctx, int $n): int +{ + return ArboricxFFI::ffi()->arb_of_number($ctx, $n); +} + +function ofString(\FFI\CData $ctx, string $s): int +{ + return ArboricxFFI::ffi()->arb_of_string($ctx, $s); +} + +function toNumber(\FFI\CData $ctx, int $root): int +{ + $out = ArboricxFFI::ffi()->new('uint64_t'); + $ok = ArboricxFFI::ffi()->arb_to_number($ctx, $root, \FFI::addr($out)); + if (!$ok) { + throw new \RuntimeException('arb_to_number failed'); + } + return (int) $out->cdata; +} + +function toString(\FFI\CData $ctx, int $root): string +{ + $ptr = ArboricxFFI::ffi()->new('uint8_t*'); + $len = ArboricxFFI::ffi()->new('size_t'); + $ok = ArboricxFFI::ffi()->arb_to_string($ctx, $root, \FFI::addr($ptr), \FFI::addr($len)); + if (!$ok) { + throw new \RuntimeException('arb_to_string failed'); + } + $length = (int) $len->cdata; + $result = ''; + for ($i = 0; $i < $length; $i++) { + $result .= chr($ptr[$i]); + } + ArboricxFFI::ffi()->arboricx_free_buf($ctx, $ptr, $length); + return $result; +} + +function toBool(\FFI\CData $ctx, int $root): bool +{ + $out = ArboricxFFI::ffi()->new('int'); + $ok = ArboricxFFI::ffi()->arb_to_bool($ctx, $root, \FFI::addr($out)); + if (!$ok) { + throw new \RuntimeException('arb_to_bool failed'); + } + return (bool) $out->cdata; +} + +function loadBundleDefault(\FFI\CData $ctx, string $bytes): int +{ + $cdata = ArboricxFFI::ffi()->new('uint8_t[' . strlen($bytes) . ']'); + for ($i = 0; $i < strlen($bytes); $i++) { + $cdata[$i] = ord($bytes[$i]); + } + $result = ArboricxFFI::ffi()->arb_load_bundle_default($ctx, $cdata, strlen($bytes)); + if ($result === 0) { + throw new \RuntimeException('arb_load_bundle_default failed'); + } + return $result; +} diff --git a/ext/php/src/functions.php b/ext/php/src/functions.php deleted file mode 100644 index 3d82a7a..0000000 --- a/ext/php/src/functions.php +++ /dev/null @@ -1,255 +0,0 @@ -tag = $tag; - $this->a = $a; - $this->b = $b; - } -} - -$GLOBALS['ARB_LEAF'] = new Node(); -$GLOBALS['ARB_CONS'] = []; - -function newNode(int $tag, ?Node $a = null, ?Node $b = null): Node -{ - if ($tag !== 3) { - $key = $tag === 1 - ? '1:' . spl_object_id($a) - : '2:' . spl_object_id($a) . ':' . spl_object_id($b); - if (isset($GLOBALS['ARB_CONS'][$key])) { - return $GLOBALS['ARB_CONS'][$key]; - } - $n = new Node($tag, $a, $b); - $GLOBALS['ARB_CONS'][$key] = $n; - return $n; - } - - return new Node($tag, $a, $b); -} - -function leaf(): Node -{ - return $GLOBALS['ARB_LEAF']; -} - -function stem(Node $c): Node -{ - return newNode(1, $c); -} - -function fork(Node $l, Node $r): Node -{ - return newNode(2, $l, $r); -} - -function app(Node $f, Node $x): Node -{ - return newNode(3, $f, $x); -} - -function tag(Node $t): int -{ - return $t->tag; -} - -function isLeaf(Node $t): bool -{ - return $t->tag === 0; -} - -function isStem(Node $t): bool -{ - return $t->tag === 1; -} - -function isFork(Node $t): bool -{ - return $t->tag === 2; -} - -function isApp(Node $t): bool -{ - return $t->tag === 3; -} - -function stemChild(Node $t): Node -{ - return $t->a; -} - -function forkLeft(Node $t): Node -{ - return $t->a; -} - -function forkRight(Node $t): Node -{ - return $t->b; -} - -function appFunc(Node $t): Node -{ - return $t->a; -} - -function appArg(Node $t): Node -{ - return $t->b; -} - -function reduce(Node $term, int $fuel = 100_000_000_000_000_000): Node -{ - return whnf($term, $fuel); -} - -function whnf(Node $term, int &$fuel): Node -{ - while (true) { - if ($term->tag !== 3) { - return $term; - } - - $orig = $term; - $f = whnf($term->a, $fuel); - $x = $term->b; - $ftag = $f->tag; - - // apply Leaf b = Stem b - if ($ftag === 0) { - $orig->tag = 1; - $orig->a = $x; - $orig->b = null; - return $orig; - } - - // apply (Stem a) b = Fork a b - if ($ftag === 1) { - $orig->tag = 2; - $orig->a = $f->a; - $orig->b = $x; - return $orig; - } - - if ($ftag !== 2) { - throw new \RuntimeException('apply: function did not reduce to tree'); - } - - $left = whnf($f->a, $fuel); - $right = $f->b; - $ltag = $left->tag; - - // apply (Fork Leaf a) _ = a - if ($ltag === 0) { - $result = whnf($right, $fuel); - if ($orig !== $result) { - $orig->tag = $result->tag; - $orig->a = $result->a; - $orig->b = $result->b; - } - if ($fuel <= 0) throw new \RuntimeException('fuel exhausted'); - $fuel--; - return $orig; - } - - // apply (Fork (Stem a) b) c = (a c) (b c) - if ($ltag === 1) { - $inner1 = newNode(3, $left->a, $x); - $inner2 = newNode(3, $right, $x); - $orig->tag = 3; - $orig->a = $inner1; - $orig->b = $inner2; - $term = $orig; - if ($fuel <= 0) throw new \RuntimeException('fuel exhausted'); - $fuel--; - continue; - } - - if ($ltag !== 2) { - throw new \RuntimeException('apply: invalid Fork left child'); - } - - $arg = whnf($x, $fuel); - $atag = $arg->tag; - - // apply (Fork (Fork a b) c) Leaf = a - if ($atag === 0) { - $result = whnf($left->a, $fuel); - if ($orig !== $result) { - $orig->tag = $result->tag; - $orig->a = $result->a; - $orig->b = $result->b; - } - if ($fuel <= 0) throw new \RuntimeException('fuel exhausted'); - $fuel--; - return $orig; - } - - // apply (Fork (Fork a b) c) (Stem u) = b u - if ($atag === 1) { - $orig->tag = 3; - $orig->a = $left->b; - $orig->b = $arg->a; - $term = $orig; - if ($fuel <= 0) throw new \RuntimeException('fuel exhausted'); - $fuel--; - continue; - } - - // apply (Fork (Fork a b) c) (Fork u v) = (c u) v - if ($atag === 2) { - $inner = newNode(3, $right, $arg->a); - $orig->tag = 3; - $orig->a = $inner; - $orig->b = $arg->b; - $term = $orig; - if ($fuel <= 0) throw new \RuntimeException('fuel exhausted'); - $fuel--; - continue; - } - - throw new \RuntimeException('apply: argument did not reduce to tree'); - } -} - -function same_tree(Node $a, Node $b): bool -{ - if ($a === $b) return true; - if ($a->tag !== $b->tag) return false; - if ($a->tag === 0) return true; - if ($a->tag === 1) return same_tree($a->a, $b->a); - if ($a->tag === 2) return same_tree($a->a, $b->a) && same_tree($a->b, $b->b); - if ($a->tag === 3) return same_tree($a->a, $b->a) && same_tree($a->b, $b->b); - return false; -} - -function formatTree(Node $t, int $depth = 0): string -{ - if ($depth > 200) return '...'; - if ($t->tag === 0) return 'Leaf'; - if ($t->tag === 1) return 'Stem(' . formatTree($t->a, $depth + 1) . ')'; - if ($t->tag === 2) return 'Fork(' . formatTree($t->a, $depth + 1) . ', ' . formatTree($t->b, $depth + 1) . ')'; - if ($t->tag === 3) return 'App(' . formatTree($t->a, $depth + 1) . ', ' . formatTree($t->b, $depth + 1) . ')'; - return 'Unknown'; -} diff --git a/ext/php/src/kernel.php b/ext/php/src/kernel.php deleted file mode 100644 index 089842f..0000000 --- a/ext/php/src/kernel.php +++ /dev/null @@ -1,53 +0,0 @@ -= strlen($s)) { - throw new \RuntimeException('parseTernary: unexpected end of string'); - } - $char = $s[$pos++]; - return match ($char) { - '0' => leaf(), - '1' => stem(parseTernary($s, $pos)), - '2' => fork(parseTernary($s, $pos), parseTernary($s, $pos)), - default => throw new \RuntimeException("parseTernary: unexpected char '$char' at position $pos"), - }; -} - -function getRunArboricxToString(): ?Node -{ - $term = loadKernelTernary('kernel_run_arboricx_to_string'); - if ($term === '') return null; - $pos = 0; - $tree = parseTernary($term, $pos); - if ($pos !== strlen($term)) { - throw new \RuntimeException("kernel ternary has trailing data: parsed $pos of " . strlen($term) . ' bytes'); - } - return $tree; -} diff --git a/ext/php/src/kernel_run_arboricx_to_string.ternary b/ext/php/src/kernel_run_arboricx_to_string.ternary deleted file mode 100644 index f4582fd..0000000 --- a/ext/php/src/kernel_run_arboricx_to_string.ternary +++ /dev/null @@ -1 +0,0 @@ -21202121212021200021201021200020102021212021201121212021200021201021200020101021212011212110021100102021202120121002121201121212021200021201021200020101020212021202120001021202220020211002020211002121201121211002110010202120212012102002121201121212021200021201021200020101020212021202120001021202220020211002020211002121202121201121212021200021201021200020101020212120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200022102010202010220201020201021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020102121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120101202102102100212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212021201120110012100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202120212000102120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212121202120002120102120002010202210202020202021002202102020210202100220210202020202100221021021021020202100220210202021020210022102020210202021002210210202020202100220202021021020210002121202120212000102120212120112000200212011010212120212021200010212021202120001021202120112121202120002120102120002010102220221000021201120110020212120212021200010212021202120001021202120112012002120112011201200212021212120212000212010212000201020212021202120001021201121212021200021201021200020101021201120212011212120212000212010212000201010212120112121202120002120102120002010102021202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201120102121201121212021200021201021200020101020212011201002121202120112121202120002120102120002010102120112021201121212021200021201021200020101021212021202120001021202120112121202120002120102120002010102120101202100212011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021202120001021201121212021200021201021200020101020212120112121100211001020212021212021201121212021200021201021200020101021201121202120212000102120212120112000200212011010212120212011212120212000212010212000201010212011212021202120001021202120212000102120212011201200212011201120120021202121212021200021201021200020102021202120212000102120112121202120002120102120002010102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002120112010212120112121202120002120102120002010102021201120100212021212120212000212010212000201020212021201121212021200021201021200020101021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021201120112021201121212021200021201021200020101021201121202120212000102120212011212120212000212010212000201010212010120210021201120112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102021202120212000102120212021200010212021201121212021200021201021200020101022202210000212011201100202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021100202021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202021002002110020020212120212011212120212000212010212000201010212021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200212011202120112121202120002120102120002010102120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202100200211002002120112011202120112121202120002120102120002010102120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202020210020021100200212011201120112021201121212021200021201021200020101021201120112011201120212011201100212120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000100202121202120212000102120212021200010020020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202021002002110020021212021202120001021202120112121202120002120102120002010102120112010212120212000212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120112120212021212120212000212010212000201020021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201120112120212000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201121202120212000102120212021200010212021200021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011202120212000102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002021212021201121212021200021201021200020101021202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002120112021201121212021200021201021200020101021201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200212011201120212011212120212000212010212000201010212011201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200212011201120112021201121212021200021201021200020101021201120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202020210020021100200212011201120112011202120112121202120002120102120002010102120112011201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202100200211002002120112011201120112011202120112121202120002120102120002010102120112011201120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202020202021002002110020021201120112011201120112011202120112121202120002120102120002010102120112011201120112011201120112021201120110021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010020212120212021200010212021202120001002002021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002121201121212021200021201021200020101020212011212110021100102120212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020022002022002022001021212011212120212000212010212000201010202120212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021201121212021200021201021200020101021201120112011201200212011201120112010212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120112121100211001021202121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200220020220020220020220020211002021212021202120001021202120112121202120002120102120002010102120112021201120110002021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212011212120212000212010212000201010212120112121100211001020212021201200212120112121202120002120102120002010102021202120002120112021212011212120212000212010212000201010202121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000221020102020102202010202010212120212011212120212000212010212000201010220010202121201121211002110010202120212120212011212120212000212010212000201010212011201200212120212000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021202120001021201120212120112121202120002120102120002010102021212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002210201020201022020102020102121202120212000102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102022001020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010212011212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002120101202102100212011201100202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021201121212021200021201021200020101021212022200202110020202110021202121212021212011200020022100202002121202120212000102120112121202120002120102120002010102021201120120021212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202022100022001021202121212021212011200020022100202002121202120212000102120112121202120002120102120002010102021201120120021212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202020022002022001021212021200021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201120110020212010121020210021212021201121212021200021201021200020101021201120120021201120102121202120002120112021200021201120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021201121212021200021201021200020101021212011212120212000212010212000201010202121202120212000102120212011212120212000212010212000201010212121201121211002110010202120212120212011212120212000212010212000201010212011201200212011212021200021201120212011212120212000212010212000201010212120212021200010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202200102120212121202120002120102120002010202120212021200010212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202022100020212120212000212011212021201120002120101202021002121202120112121202120002120102120002010102121201121212021200021201021200020101020212120212011212120212000212010212000201010212120212011212120212000212010212000201010212120212011212120212000212010212000201010212021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002200202200202200202200202200202200202200102021202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120112121100211001020212021201200212010112021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020212021200021212021201121212021200021201021200020101021201012100212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201120110021201120212011212120212000212010212000201010212120212120212011212120212000212010212000201010212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021201121212021200021201021200020101021201120112011201200212011201120112010212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120112121100211001020212021202120001021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102120212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020022002022002022002022002022002022001021202121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200220020220020220020220020220020220020220010202120112121202120002120102120002010102021201021201021201012020210020212011212120212000212010212000201010212011201120112010212011212021201121212021200021201021200020101021201120112010212120212021200010212011212120212000212010212000201010202120112021201120110002120112011202120212000102120112011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202120112121202120002120102120002010102121201121212021200021201021200020101020212120212021200010212021201121212021200021201021200020101021212120112121100211001020212021212021201121212021200021201021200020101021201120120021201121202120002120112021201121212021200021201021200020101021212021202120001021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020220010212021212120212000212010212000201020212021202120001021202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202020202202100020212120212000212011212021201120002120101202021002121202120112121202120002120102120002010102121201121212021200021201021200020101020212120212011212120212000212010212000201010212120212011212120212000212010212000201010212120212011212120212000212010212000201010212021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002200202200202200202200202200202200202200102021202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120112121100211001020212021201200212010112021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020212021200021212021201121212021200021201021200020101021201012100212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201120110021201120212011212120212000212010212000201010212120212120212011212120212000212010212000201010212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021201121212021200021201021200020101021201120112011201200212011201120112010212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120112121100211001020212021202120001021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102120212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020022002022002022002022002022002022001021202121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200220020220020220020220020220020220020220010202120112121202120002120102120002010102021201021201021201012020210020212011212120212000212010212000201010202120112121202120002120102120002010102021212011212120212000212010212000201010202120120021201120102121202120112121202120002120102120002010102121202120112121202120002120102120002010102120112012002121202120212000102120212011212120212000212010212000201010212011201120102121202120212000102120112121202120002120102120002010102021201120212011201100212120112121202120002120102120002010102002021201120212021200010212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212120212011212120212000212010212000201010212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010220010202210202020202102100220210202021021021002202102020202102100221021021021020210210022021020202102102100221020202102021021002210210202020210210022020202102102102100220210210210202100220210202020210210022102021020210210210022021021021020210210022020210202021021002202021021020210210022102021020202102100220210210210202100221020210210202102100221020202020210210022021021021020210210022102020210202102100220210210202021021002210202102020210210022102102020210210210022020210202102102100220210210210202100220210210202102102100221020202021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001022002021100202202021020210210210022021020202102102100221020210202021021002210202102020210210022102021021020210022102102020202102100221020202020210210022020210210202102100221021020202021021002210202102021021021002202021021020210210022102021020210210210022102102020210210210022102021021020210022102021020202102100220202021021021021002210202102020210210022102102020202102100221020210202102102100220202102021021021002210202020202102100220210202020210210022020210210202102100221020210202021021002210202102102021002210210210210202102100220210202020210210022021020210202102100221020210202021021002210210202020210210022020210202102102100021212022200202110020202110021212021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001021202200102120220020211002200202110020220202102021021021002202102020210210210022102021020202102100221020210202021021002210202102102021002210210202020210210022102020202021021002202021021020210210022102102020202102100221020210202102102100220202102102021021002210202102021021021002210210202021021021002202102102102021002202102102021021021002210202020210210002121202220020211002020211002121202121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102120220010212022002021100212022002021100220020211002022102102020210210210022020202102021021002210202020202102100220210202021021002210202102021021002202102102021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001021202200202110021202200202110021202200202110022002021100202210202020202102100220210202021021021002202102020202102100221021021021020210210022021020202102102100221020202102021021002210210202020210210022020202102102102100220210210210202100221020210210202102100221020210202021021002202102020210210210022102102021020210210022020210210202102100221020210202021021002202102102102021002202102102102021021002210210210210202102100220202102020210210022102021020202102100220210210210202100220210210202102102100221020202021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001021202200202110021202200202110021202200202110021202200202110022002021100202210202020202102100220210202021021021002202102020202102100221021021021020210210022021020202102102100221020202102021021002210210202020210210022020202102102102100220210210210202100221020210210202102100221020210202021021002202102020210210210022102102021020210210022020210210202102100221020210202021021002202102102102021002202020202102102100221020202020210210022102020210210210210022020210210202102100221021021021020210210022102020202021021002202021020202102100220210210210202100220210210202102102100221020202021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001021202200202110021202200202110021202200202110021202200202110021202200202110022002021100202202021020210210210022021020202102102100221020210202021021002210202102020210210022102021021020210022102102020202102100221020202020210210022020210210202102100221021020202021021002210202102021021021002202021021020210210022102021020210210210022102102020210210210022021021021020210022021021020210210210022102020202102100021212022200202110020202110021212021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001021202200102120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002200202110020220210210210202102100221021021021020210210022021020202102102100221020210210202102100221020202020210210022020210210202102100221020210210202100221021021021020210210022021020202102102100220202102020210210022102021020202102100220210202021021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110022002021100202210202020202102100220210202021021021002202102020202102100221021021021020210210022021020202102102100221020202102021021002210210202020210210022020202102102102100220210210210202100221020202020210210022021020202021021002210202021020210210022021021021020210022020210202102102100220210202021021021002210202102020210210022102021020202102100220210210210202100220210210202102102100221020202021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110022002021100202002121202220020211002020211002120221020020200212022100202002120220010212022002021100212022002021100212022002021100212022002021100212022002021100212022002021100212022002021100212022002021100212022002021100212022002021100220020211002120221020020200212022100202002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002200202110021212021200021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201120110020212010121020210210020212011212120212000212010212000201010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212121202120002120102120002010202210202020202021002202102020210202100220210202020202100221020210210202021002202102102102020210022021021020202021002210210202021020210022020210202102021000212120212021200010212021212011200020021201101021212021202120001021202120212000102120212011212120212000212010212000201010222022100002120112011002021212021202120001021202120212000102120212011201200212011201120120021202121212021200021201021200020102021202120212000102120112121202120002120102120002010102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002120112010212120112121202120002120102120002010102021201120100212120212011212120212000212010212000201010212011202120112121202120002120102120002010102121202120212000102120212011212120212000212010212000201010212010120210021201120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120212000102120112121202120002120102120002010102021212011212110021100102021202121202120112121202120002120102120002010102120112120212021200010212021212011200020021201101021212021201121212021200021201021200020101021201121202120212000102120212021200010212021201120120021201120112012002120212121202120002120102120002010202120212021200010212011212120212000212010212000201010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212011201021212011212120212000212010212000201010202120112010021202121212021200021201021200020102021202120112121202120002120102120002010102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120112120212021200010212021201121212021200021201021200020101021201012021002120112011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010202120212021200010212021202120001021202120112121202120002120102120002010102220221000021201120110020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102110020202121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002020212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200202021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200202120212121202120002120102120002010202120112011002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020020212120212011212120212000212010212000201010212021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200202120212121202120002120102120002010202120112011002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020021201120212011212120212000212010212000201010212011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002120112011201120212011212120212000212010212000201010212011201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200202120212121202120002120102120002010202120112011002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020021201120112011201120212011212120212000212010212000201010212011201120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002120112011201120112011202120112121202120002120102120002010102120112011201120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002120112011201120112011201120212011212120212000212010212000201010212011201120112011201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200202120212121202120002120102120002010202120112011002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020021201120112011201120112011201120212011212120212000212010212000201010212011201120112011201120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020021201120112011201120112011201120112021201121212021200021201021200020101021201120112011201120112011201120212121202120002120102120002010202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011212021202120001021202120212000102120212000212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112021202120001021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002121201121212021200021201021200020101020212011212110021100102121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200212011201120112011201120112011201120212021200010212011201120112011201120112011201120212011212120212000212010212000201010212011201120112011201120112011201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021002002110020021201120112011201120112011201120112011202120112121202120002120102120002010102120112011201120112011201120112011201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002120112011201120112011201120112011201120112021201121212021200021201021200020101021201120112011201120112011201120112011202121212021200021201021200020102021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021202121212021200021201021200020102002120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112120212021200010212021202120001021202120002120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120212021200010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202020210020021100200202121202120112121202120002120102120002010102120112021201120110002021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002121201121212021200021201021200020101020212011212110021100102121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200212011201120112011201120112011201120112011202120212000102120112011201120112011201120112011201120112021201121212021200021201021200020101021201120112011201120112011201120112011201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002120112011201120112011201120112011201120112011202120112121202120002120102120002010102120112011201120112011201120112011201120112021212120212000212010212000201020212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201120112120212000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201121202120212000102120212021200010212021200021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011202120212000102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002021202121212021200021201021200020102021201120110021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021202121212021200021201021200020102002121202120002120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020211002121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200202121202120112121202120002120102120002010102120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002021202121212021200021201021200020102021201120110021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021202121212021200021201021200020102002121202120002120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020211002121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200212011202120112121202120002120102120002010102120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200202120212121202120002120102120002010202120112011002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021201120112011202120112011002121202120212000102120212021200010212021202120001002021212021202120001021202120212000100200202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202020202100200211002002121201121212021200021201021200020101020212011212110021100102121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200212011201120112011201120112011201120112011201120212021200010212011201120112011201120112011201120112011201120212011212120212000212010212000201010212011201120112011201120112011201120112011201120112021201120110021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010020212120212021200010212021202120001002002021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002021212021201121212021200021201021200020101021212021202120001021202120112121202120002120102120002010102120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002120112021201121212021200021201021200020101021202121212021200021201021200020102021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021212120212000212010212000201020021212021201121212021200021201021200020101021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002021212011212110021100102021202120212121202120002120102120002010202121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120212000212011201120212000212011212021202120001021202120212000102120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201101021212021201121212021200021201021200020101021201120112010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200202121202120112121202120002120102120002010102121202120212000102120212011212120212000212010212000201010212011202120112011000202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200212120112121202120002120102120002010102021201121211002110010212011202120212000102120112021201121212021200021201021200020101021201120112010212021212120212000212010212000201020211002120112021200021201120112021201120110021212021202120001021202120212000100200202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011212021202120001021202120212000102120212000212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112021202120001021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002021212021201121212021200021201021200020101021212021202120001021202120112121202120002120102120002010102120112021201120110002021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021202121212021200021201021200020102002121202120002120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020211002121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002121201121212021200021201021200020101020212011212110021100102121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002120112010212012002120112010212120212011212120212000212010212000201010212011201021212011212120212000212010212000201010202120212120212011212120212000212010212000201010212021212120212000212010212000201020212011201021212011212120212000212010212000201010202120112011002120112021202120001021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212021200010212120112121100211001020212021212021202120001021202120002120212121202120002120102120002010202020202210202021000212011202120012022102020210002120212121202120002120102120002010202200202200202110021201120212021200010212021212120212000212010212000201020212121202121201120002002210020200212120212021200010212011212120212000212010212000201010202120112012002121202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020200212011202120002120112011202121212011200020202102002020202102002120212121202120002120102120002010202121202220020211002020211002120220212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202100202002200212010021212021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121201121211002110010202120212012002120101120212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202102020202021002120112021200021212021200021201120212000212011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201120212121202120002120102120002010202120102121202120112011000200212011201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212011212120212000212010212000201010212120212000102021202121212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202020202100200212121212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010202100200202120112121202120002120102120002010102121202120002120112021200021201120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021201121212021200021201021200020101021212021200010202120212121212011212110021100102021202121202120112121202120002120102120002010102120112011201200212011212021200021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112011201120212121201120002020020202002120112021212120212000212010212000201020212021202120001002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202020202020210020021212121201121211002110010202120212011212021202120001021201121212021200021201021200020101021201120112011201200212011201120112010212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120112121100211001020210020020212011212120212000212010212000201010212011201120112010212011202121212021200021201021200020102021201120102120212121202120002120102120002010200212011202120112011000212011201120212021200010212011201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212011212120212000212010212000201010212120212000102021202121212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202020202100200212121212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010202102020202021002002021201121212021200021201021200020101020212120112121202120002120102120002010102021212011212110021100102021202121202120112121202120002120102120002010102120112012002120112120212000212011202120112121202120002120102120002010102121202120212000102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102022001021202121212021200021201021200020102021202120212000102120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200002120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020220020211002021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121212021200021201021200020102022102020202020210022021020202102021002202102020202021002210210210210202021002202102020210202100221020202102020210022102102020202021002202020210210202100021212021202120001021202121201120002002120110102121202120212000102120212021200010212021201121212021200021201021200020101022202210000212011201100202121202120212000102120212021200010212021201120120021201120112012002120212121202120002120102120002010202120212021200010212011212120212000212010212000201010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212011201021212011212120212000212010212000201010202120112010021212021201121212021200021201021200020101021201120212011212120212000212010212000201010212120212021200010212021201121212021200021201021200020101021201012021002120112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212021200010212011212120212000212010212000201010202121201121211002110010202120212120212011212120212000212010212000201010212011212021202120001021202121201120002002120110102121202120112121202120002120102120002010102120112120212021200010212021202120001021202120112012002120112011201200212021212120212000212010212000201020212021202120001021201121212021200021201021200020101021201120212011212120212000212010212000201010212120112121202120002120102120002010102021202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201120102121201121212021200021201021200020101020212011201002120212121202120002120102120002010202120212011212120212000212010212000201010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212011201120212011212120212000212010212000201010212011212021202120001021202120112121202120002120102120002010102120101202100212011201120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021202120001021201121212021200021201021200020101020212021202120001021202120212000102120212011212120212000212010212000201010222022100002120112011002021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010211002020212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200202121202120112121202120002120102120002010102120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002120112021201121212021200021201021200020101021201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202021002002110020021201120112021201121212021200021201021200020101021201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202100200211002002120112011201120212011212120212000212010212000201010212011201120112011202120112011002121202120212000102120212021200010212021202120001021202120212000100202121202120212000102120212021200010212021202120001002021212021202120001021202120212000100200202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200212120212021200010212021201121212021200021201021200020101021201120102121202120002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021201121202120212121202120002120102120002010200212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011212021202120001021202120212000102120212000212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112021202120001021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212120212011212120212000212010212000201010212021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202021002002110020021201120212011212120212000212010212000201010212011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002120112011202120112121202120002120102120002010102120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002120112011201120212011212120212000212010212000201010212011201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202100200211002002120112011201120112021201121212021200021201021200020101021201120112011201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202021002002110020021201120112011201120112021201121212021200021201021200020101021201120112011201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202020210020021100200212011201120112011201120112021201121212021200021201021200020101021201120112011201120112011201120212011201100212120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000100202121202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000100202121202120212000102120212021200010020020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202021002002110020021212011212120212000212010212000201010202120112121100211001021202121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200220020220020220010212120112121202120002120102120002010102021202120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010212021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002200202200202200202200202110020212120212021200010212021201121212021200021201021200020101021201120212011201100020212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202120112121202120002120102120002010102121201121211002110010202120212012002121201121212021200021201021200020101020212021200021201120212120112121202120002120102120002010102021212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002210201020201022020102020102121202120112121202120002120102120002010102200102021212011212110021100102021202121202120112121202120002120102120002010102120112012002121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212021200010212011202121201121212021200021201021200020101020212120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200022102010202010220201020201021212021202120001021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020220010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102120112120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201012021021002120112011002021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212011212120212000212010212000201010212120222002021100202021100212021212120212120112000200221002020021212021202120001021201121212021200021201021200020101020212011201200212120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020221000220010212021212120212120112000200221002020021212021202120001021201121212021200021201021200020101020212011201200212120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020200220020220010212120212000212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212011201100202120101210202100212120212011212120212000212010212000201010212011201200212011201021201121202120112121202120002120102120002010102120112010212120212011212120212000212010212000201010212011201021212011212120212000212010212000201010202120112011002021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202020210020021100200202121202120112121202120002120102120002010102121202120212000102120212011212120212000212010212000201010212011202120112011000202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021201121212021200021201021200020101021212011212110021100102021202120120021212011212120212000212010212000201010202120212021200010212021212011212120212000212010212000201010202121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000221020102020102202010202010212022102002020021202121202121201121212021200021201021200020101020212120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200022102010202010220201020201021212120212120112000200221002020021212021202120001021201121212021200021201021200020101020212011201200212120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020021212021212011212120212000212010212000201010202121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000221020102020102202010202010212120222002021100202021100212022021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020210020200220021201002121202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120112121100211001020212021201200212010112021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020210202020202100212120222002021100202021100212022021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202100202002200212010021212021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121201121211002110010202120212012002120101120212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202102020202020210022002022002021100212120112121202120002120102120002010102021201121211002110010212011212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002120101202020210021212021201121212021200021201021200020101021212011212110021100102021202120120021212011212120212000212010212000201010202120212000212011202121201121212021200021201021200020101020212120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200022102010202010220201020201021212021201121212021200021201021200020101022001020212120112121100211001020212021212021201121212021200021201021200020101021201120120021212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120212000102120112021212011212120212000212010212000201010202121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000221020102020102202010202010212120212021200010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202200102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001021201121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212010121021021002121202120112121202120002120102120002010102121212011212110021100102021202121202120112121202120002120102120002010102120112012100212120212000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021202120001021201120222002021100202021100212120112121202120002120102120002010102021202121201121211002110010202120212120212011212120212000212010212000201010212011201210021212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120212000102120112022200202110020202110021212011212120212000212010212000201010202121201121212021200021201021200020101020212120112121100211001020212021212021201121212021200021201021200020101021201120120021212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120212000102120112021212011212120212000212010212000201010202121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000221020102020102202010202010212120212021200010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202200102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212021212021212120112000202002020200212121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120021202121212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202020202100200212121212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010202100200200212120021202121212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202020202100200212121212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010202100200212120021202121212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202020202100200212121212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010202102020202021002002002121202220020211002020211002120220212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202100202002200212010021212021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121201121211002110010202120212012002120101120212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202102020202021002121212021212011200020022100202002121202120212000102120112121202120002120102120002010102021201120120021212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202002200202200202110020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010211002121202120002120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002120112011002021201012102020210021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021202121212021200021201021200020102002120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112120212021200010212021202120001021202120002120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120212021200010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202020210020021100200202121202120112121202120002120102120002010102121202120002120112021201121212021200021201021200020101021201120112021201120110021212021202120001021202120212000100200202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200212120112121202120002120102120002010102021201121211002110010212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020020212120212000212120212000212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212011201100202120101202100202210020200212011201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212011212120212000212010212000201010212120112121202120002120102120002010102021212021202120001021202120112121202120002120102120002010102121212011212110021100102021202121202120112121202120002120102120002010102120112012002120112120212000212011202120112121202120002120102120002010102121202120212000102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102022001021202121212021200021201021200020102021202120212000102120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200002120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020202020220210002021212021200021201121202120112000212010120202100212120212011212120212000212010212000201010212120112121202120002120102120002010102021212021201121212021200021201021200020101021212021201121212021200021201021200020101021212021201121212021200021201021200020101021202121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200220020220020220020220020220020220020220010202120212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212011212110021100102021202120120021201011202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021202120002121202120112121202120002120102120002010102120101210021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120112011002120112021201121212021200021201021200020101021212021212021201121212021200021201021200020101021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120112121202120002120102120002010102120112011201120120021201120112011201021201120112120212000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212011212110021100102021202120212000102120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202121202120112121202120002120102120002010102120112011201200212011212021200021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112011201120212121201120002020020202002120112021212120212000212010212000201020212021202120001002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002200202200202200202200202200202200102120212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020022002022002022002022002022002022002022001020212011212120212000212010212000201010202120102120102120101202021002021201121212021200021201021200020101020212011212120212000212010212000201010220020220010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120212000212120212021200010212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121212120212011200022202202021000021212021202120001021212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201120110020020202202021000202210020200202121201120110020020202020220202100021212120112121100211001020212021212021201121212021200021201021200020101021201120120021201121202120002120112021201121212021200021201021200020101021212021202120001021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020220010212021212120212000212010212000201020212021202120001021202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202210202102102021021002210202020202102100221020202102021021002202102102102021021000212011202220220202100021212011201100200202020220202100021212011212110021100102021202121202120112121202120002120102120002010102120112012002120112120212000212011202120112121202120002120102120002010102121202120212000102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102022001021202121212021200021201021200020102021202120212000102120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200002120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020221002020021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110022002021100200202120112021201120110021212011212120212000212010212000201010202121201121212021200021201021200020101020212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021100 \ No newline at end of file diff --git a/flake.nix b/flake.nix index 6de6997..b8a3d38 100644 --- a/flake.nix +++ b/flake.nix @@ -50,7 +50,6 @@ ''; }; - # Separate test target — not included in `nix flake check` tricuZigTests = pkgs.stdenv.mkDerivation { pname = "tricu-zig-tests"; version = "0.1.0"; @@ -100,11 +99,64 @@ echo "All Zig tests passed" > $out/result ''; }; + + # ------------------------------------------------------------------ + # PHP FFI host + # ------------------------------------------------------------------ + tricuPhp = pkgs.stdenv.mkDerivation { + pname = "tricu-php"; + version = "0.1.0"; + src = ./ext/php; + nativeBuildInputs = [ pkgs.makeWrapper phpWithFfi tricuZig ]; + buildPhase = "true"; + installPhase = '' + mkdir -p $out/share/tricu-php $out/lib $out/bin + cp -r src run.php $out/share/tricu-php/ + cp ${tricuZig}/lib/libarboricx.so $out/lib/ + cp ${tricuZig}/include/arboricx.h $out/share/tricu-php/ + + makeWrapper ${phpWithFfi}/bin/php $out/bin/tricu-php \ + --add-flags "$out/share/tricu-php/run.php" \ + --set ARBORICX_LIB "$out/lib/libarboricx.so" \ + --prefix LD_LIBRARY_PATH : "$out/lib" + ''; + }; + + # ------------------------------------------------------------------ + # PHP FFI tests (separate target) + # ------------------------------------------------------------------ + phpWithFfi = pkgs.php.withExtensions (exts: [ pkgs.phpExtensions.ffi ]); + + tricuPhpTests = pkgs.stdenv.mkDerivation { + pname = "tricu-php-tests"; + version = "0.1.0"; + src = ./.; + nativeBuildInputs = [ phpWithFfi tricuPhp ]; + buildPhase = "true"; + doCheck = true; + checkPhase = '' + export ARBORICX_LIB=${tricuPhp}/lib/libarboricx.so + export LD_LIBRARY_PATH=${tricuPhp}/lib:$LD_LIBRARY_PATH + ulimit -s 32768 + + # Run PHP host against fixture bundles + php ext/php/run.php run test/fixtures/id.arboricx hello + php ext/php/run.php run test/fixtures/append.arboricx "Hello, " "world!" + php ext/php/run.php run test/fixtures/true.arboricx + php ext/php/run.php run test/fixtures/false.arboricx + php ext/php/run.php run test/fixtures/notQ.arboricx "t t t" + + mkdir -p $out + echo "All PHP tests passed" > $out/result + ''; + }; in { packages.${packageName} = tricuPackage; packages.default = tricuPackage; packages.tricu-zig = tricuZig; packages.tricu-zig-tests = tricuZigTests; + packages.tricu-php = tricuPhp; + packages.tricu-php-tests = tricuPhpTests; checks.${packageName} = tricuPackageTests; checks.default = tricuPackageTests; @@ -124,6 +176,7 @@ inputsFrom = [ tricuPackage tricuZig + tricuPhp ]; };