From e9eb2daaf28f78f263b78ec0e49ac05bf43f63dd Mon Sep 17 00:00:00 2001 From: James Eversole Date: Sat, 9 May 2026 20:22:58 -0500 Subject: [PATCH] Initial PHP host implementation --- ext/php/run.php | 274 ++++++++++++++++++ ext/php/src/codecs.php | 203 +++++++++++++ ext/php/src/functions.php | 259 +++++++++++++++++ ext/php/src/kernel.php | 164 +++++++++++ .../src/kernel_run_arboricx_to_string.ternary | 1 + notes/php-cli-run-flags.md | 9 + src/Main.hs | 14 +- 7 files changed, 919 insertions(+), 5 deletions(-) create mode 100644 ext/php/run.php create mode 100644 ext/php/src/codecs.php create mode 100644 ext/php/src/functions.php create mode 100644 ext/php/src/kernel.php create mode 100644 ext/php/src/kernel_run_arboricx_to_string.ternary create mode 100644 notes/php-cli-run-flags.md diff --git a/ext/php/run.php b/ext/php/run.php new file mode 100644 index 0000000..ff42a53 --- /dev/null +++ b/ext/php/run.php @@ -0,0 +1,274 @@ +#!/usr/bin/env php + [arg ...] + * php run.php inspect + * php run.php repl + * + * 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'; + +use function Arboricx\{app, apply_, reduce, ofString, ofNumber, ofBytes, ofList, + formatTree, decodeResult, unwrapResult, + unwrapHostValue, decodeHostPayload, + isLeaf, isStem, isFork, + HOST_STRING_TAG, HOST_NUMBER_TAG, HOST_BOOL_TAG, + HOST_LIST_TAG, HOST_BYTES_TAG, HOST_TREE_TAG, + getRunArboricxToString}; + +// ── Commands ───────────────────────────────────────────────────────────────── + +function debugTime(string $label): void +{ + static $start = null; + static $last = null; + $now = microtime(true); + if ($start === null) { + $start = $now; + $last = $now; + } + fwrite(STDERR, sprintf("[%.3fs +%.3fs] %s\n", $now - $start, $now - $last, $label)); + $last = $now; +} + +function cmdRun(string $bundlePath, array $args): void +{ + debugTime('start'); + + if (!file_exists($bundlePath)) { + fwrite(STDERR, "Error: bundle file not found: $bundlePath\n"); + exit(1); + } + $bundleBytes = file_get_contents($bundlePath); + debugTime('read bundle bytes'); + if ($bundleBytes === false) { + fwrite(STDERR, "Error: could not read bundle file: $bundlePath\n"); + exit(1); + } + + $kernel = getRunArboricxToString(); + debugTime('loaded kernel'); + if ($kernel === null) { + fwrite(STDERR, "Error: runArboricxToString kernel not configured (empty ternary string)\n"); + fwrite(STDERR, "Set KERNEL_RUN_ARBORICX_TO_STRING constant in kernel.php\n"); + exit(1); + } + + $bundleTree = ofBytes($bundleBytes); + debugTime('encoded bundle bytes'); + + $argTrees = []; + foreach ($args as $arg) { + $argTrees[] = encodeArg($arg); + } + $argsTree = ofList($argTrees); + debugTime('encoded args'); + + $expr = app(app($kernel, $bundleTree), $argsTree); + debugTime('built expression'); + + fwrite(STDERR, "Reducing kernel application...\n"); + $result = reduce($expr, 1_000_000); + debugTime('reduced kernel application'); + + [$kind, $value, $rest] = unwrapResult($result); + debugTime('unwrapped 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); + debugTime('unwrapped host value'); + + try { + $decoded = decodeHostPayload($tag, $payload); + debugTime('decoded 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); + } +} + +/** + * Encode a command-line argument into a Tree Calculus value. + * + * - Numeric strings (digits only) → tree number + * - Everything else → tree string + */ +function encodeArg(string $arg): int +{ + if (ctype_digit($arg) || ($arg !== '0' && preg_match('/^-?\d+$/', $arg))) { + return ofNumber((int)$arg); + } + return ofString($arg); +} + +function cmdInspect(string $bundlePath): void +{ + // Minimal inspection: just read the bundle as bytes and print its size. + // Full parsing is done by the kernel, not the host shell. + if (!file_exists($bundlePath)) { + fwrite(STDERR, "Error: bundle file not found: $bundlePath\n"); + exit(1); + } + $bundleBytes = file_get_contents($bundlePath); + if ($bundleBytes === false) { + fwrite(STDERR, "Error: could not read bundle file: $bundlePath\n"); + exit(1); + } + + $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"; + } + } else { + echo "\nResult (err):\n"; + [$ok, $code] = Arboricx\toNumber($value); + echo " Code: " . ($ok ? (string)$code : formatTree($value)) . "\n"; + } +} + +function cmdRepl(): void +{ + echo "Arboricx PHP REPL\n"; + echo "Commands:\n"; + echo " run [args...] — Run a bundle\n"; + echo " inspect — Inspect a bundle\n"; + echo " exit — Exit\n"; + echo "\n"; + + $kernel = getRunArboricxToString(); + if ($kernel === null) { + fwrite(STDERR, "Warning: kernel not configured\n"); + } + + while (true) { + $prompt = "arboricx> "; + fwrite(STDOUT, $prompt); + $line = trim(fgets(STDIN)); + if ($line === '' || $line === 'exit' || $line === 'quit') { + break; + } + + $parts = preg_split('/\s+/', $line, 2); + if (!$parts) { + continue; + } + + $cmd = $parts[0]; + switch ($cmd) { + case 'run': + if (!isset($parts[1])) { + fwrite(STDERR, "Usage: run [args...]\n"); + break; + } + $cmdRun($parts[1], array_slice($parts, 2)); + break; + case 'inspect': + if (!isset($parts[1])) { + fwrite(STDERR, "Usage: inspect \n"); + break; + } + cmdInspect($parts[1]); + break; + case 'help': + echo "Commands:\n"; + echo " run [args...] — Run a bundle\n"; + echo " inspect — Inspect a bundle\n"; + echo " exit — Exit\n"; + break; + default: + fwrite(STDERR, "Unknown command: $cmd\n"); + } + } +} + +// ── Main ───────────────────────────────────────────────────────────────────── + +$argv = $_SERVER['argv'] ?? []; +$argc = $_SERVER['argc'] ?? 0; + +if ($argc < 2) { + echo "Arboricx PHP Host Shell\n"; + echo "\nUsage:\n"; + echo " php run.php run [args...]\n"; + echo " php run.php inspect \n"; + echo " php run.php repl\n"; + exit(0); +} + +$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)); + break; + case 'inspect': + if ($argc < 3) { + fwrite(STDERR, "Usage: php run.php inspect \n"); + exit(1); + } + cmdInspect($argv[2]); + break; + case 'repl': + cmdRepl(); + break; + default: + echo "Unknown command: $command\n"; + echo "Usage: php run.php run|inspect|repl ...\n"; + exit(1); +} diff --git a/ext/php/src/codecs.php b/ext/php/src/codecs.php new file mode 100644 index 0000000..37e22cc --- /dev/null +++ b/ext/php/src/codecs.php @@ -0,0 +1,203 @@ += 0; $i--) { + $result = fork($elements[$i], $result); + } + return $result; +} + +function toList(int $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]; +} + +function ofString(string $s): int +{ + $bytes = []; + for ($i = 0, $len = strlen($s); $i < $len; $i++) { + $bytes[] = ofNumber(ord($s[$i])); + } + return ofList($bytes); +} + +function toString(int $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): int +{ + return ofString($s); +} + +function toBytes(int $tree): array +{ + return toString($tree); +} + +function unwrapResult(int $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]; +} + +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(int $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(int $tree): bool +{ + $tree = reduce($tree); + return isLeaf($tree) || (isStem($tree) && isLeaf(stemChild($tree))); +} + +function isNumber(int $tree): bool +{ + [$ok, $_] = toNumber($tree); + return $ok; +} + +function isList(int $tree): bool +{ + [$ok, $_] = toList($tree); + return $ok; +} + +function isString(int $tree): bool +{ + [$ok, $elements] = toList($tree); + if (!$ok) return false; + foreach ($elements as $elem) if (!isNumber($elem)) return false; + return true; +} + +function decodeHostPayload(int $tag, int $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); + } +} + +function decodeResult(int $tree): string +{ + $tree = reduce($tree); + if (isLeaf($tree)) return 't'; + + [$ok, $str] = toString($tree); + if ($ok && $str !== '') { + $valid = true; + for ($i = 0; $i < strlen($str); $i++) { + $n = ord($str[$i]); + if ($n < 32 || $n > 126) { $valid = false; break; } + } + if ($valid) return '"' . $str . '"'; + } + + [$ok, $num] = toNumber($tree); + if ($ok) return (string)$num; + + [$ok, $xs] = toList($tree); + if ($ok) return '[' . implode(', ', array_map(fn($x) => decodeResult($x), $xs)) . ']'; + + return formatTree($tree); +} diff --git a/ext/php/src/functions.php b/ext/php/src/functions.php new file mode 100644 index 0000000..7a1b1bd --- /dev/null +++ b/ext/php/src/functions.php @@ -0,0 +1,259 @@ + 0]; +$GLOBALS['ARB_A'] = [0 => 0]; +$GLOBALS['ARB_B'] = [0 => 0]; +$GLOBALS['ARB_NEXT'] = 1; +$GLOBALS['ARB_CONS_CACHE'] = []; + +function newNode(int $tag, int $a, int $b = 0): int +{ + $id = $GLOBALS['ARB_NEXT']++; + $GLOBALS['ARB_TAG'][$id] = $tag; + $GLOBALS['ARB_A'][$id] = $a; + $GLOBALS['ARB_B'][$id] = $b; + return $id; +} + +function updateInd(int $node, int $target): void +{ + if ($node === 0 || $node === $target) return; + $GLOBALS['ARB_TAG'][$node] = 4; + $GLOBALS['ARB_A'][$node] = $target; + $GLOBALS['ARB_B'][$node] = 0; +} + +function deref(int $t): int +{ + while ($t !== 0 && ($GLOBALS['ARB_TAG'][$t] ?? -1) === 4) { + $next = $GLOBALS['ARB_A'][$t]; + if ($next === $t) break; + $t = $next; + } + return $t; +} + +function leaf(): int { return 0; } +function stem(int $child): int { return newNode(1, $child); } +function fork(int $left, int $right): int { return newNode(2, $left, $right); } +function appNode(int $f, int $x): int { return newNode(3, $f, $x); } +function tree(): int { return 0; } + +function tag(int $t): int { $t = deref($t); return $GLOBALS['ARB_TAG'][$t] ?? -1; } +function argA(int $t): int { $t = deref($t); return $GLOBALS['ARB_A'][$t]; } +function argB(int $t): int { $t = deref($t); return $GLOBALS['ARB_B'][$t]; } + +function isLeaf(int $t): bool { return deref($t) === 0; } +function isStem(int $t): bool { return tag($t) === 1; } +function isFork(int $t): bool { return tag($t) === 2; } +function isApp(int $t): bool { return tag($t) === 3; } +function isTree(int $t): bool { $tag = tag($t); return $tag === 0 || $tag === 1 || $tag === 2; } +function isTerm(int $t): bool { $tag = tag($t); return $tag === 0 || $tag === 1 || $tag === 2 || $tag === 3; } + +function stemChild(int $t): int { return argA($t); } +function forkLeft(int $t): int { return argA($t); } +function forkRight(int $t): int { return argB($t); } +function appFunc(int $t): int { return argA($t); } +function appArg(int $t): int { return argB($t); } + +function app(int $f, int $x): int { return appNode($f, $x); } + +function newStemFast(int $child, array &$TAG, array &$A, array &$B): int +{ + $id = $GLOBALS['ARB_NEXT']++; + $TAG[$id] = 1; + $A[$id] = $child; + $B[$id] = 0; + return $id; +} + +function newForkFast(int $left, int $right, array &$TAG, array &$A, array &$B): int +{ + $id = $GLOBALS['ARB_NEXT']++; + $TAG[$id] = 2; + $A[$id] = $left; + $B[$id] = $right; + return $id; +} + +function newAppFast(int $f, int $x, array &$TAG, array &$A, array &$B): int +{ + $id = $GLOBALS['ARB_NEXT']++; + $TAG[$id] = 3; + $A[$id] = $f; + $B[$id] = $x; + return $id; +} + +function apply_(int $a, int $b, int $fuel = 1_000_000): int +{ + return reduce(app($a, $b), $fuel); +} + +function reduce(int $term, int $fuel = 1_000_000): int +{ + return whnf($term, $fuel); +} + +function whnf(int $term, int &$fuel): int +{ + $TAG =& $GLOBALS['ARB_TAG']; + $A =& $GLOBALS['ARB_A']; + $B =& $GLOBALS['ARB_B']; + + while (true) { + // deref term + while ($term !== 0 && $TAG[$term] === 4) { + $term = $A[$term]; + } + + if ($TAG[$term] !== 3) { + return $term; + } + + $orig = $term; + $f = whnf($A[$term], $fuel); + $x = $B[$term]; + + // deref function result + while ($f !== 0 && $TAG[$f] === 4) { + $f = $A[$f]; + } + $ftag = $TAG[$f]; + + // apply Leaf b = Stem b + if ($f === 0) { + $result = newStemFast($x, $TAG, $A, $B); + if ($orig !== $result) { $TAG[$orig] = 4; $A[$orig] = $result; $B[$orig] = 0; } + return $result; + } + + // apply (Stem a) b = Fork a b + if ($ftag === 1) { + $result = newForkFast($A[$f], $x, $TAG, $A, $B); + if ($orig !== $result) { $TAG[$orig] = 4; $A[$orig] = $result; $B[$orig] = 0; } + return $result; + } + + if ($ftag !== 2) { + throw new \RuntimeException('apply: function did not reduce to tree'); + } + + $left = whnf($A[$f], $fuel); + $right = $B[$f]; + + // deref left + while ($left !== 0 && $TAG[$left] === 4) { + $left = $A[$left]; + } + $ltag = $TAG[$left]; + + // apply (Fork Leaf a) _ = a + if ($left === 0) { + $term = $right; + if ($orig !== $term) { $TAG[$orig] = 4; $A[$orig] = $term; $B[$orig] = 0; } + continue; + } + + // apply (Fork (Stem a) b) c = (a c) (b c) + if ($ltag === 1) { + $term = newAppFast( + newAppFast($A[$left], $x, $TAG, $A, $B), + newAppFast($right, $x, $TAG, $A, $B), + $TAG, $A, $B + ); + if ($orig !== $term) { $TAG[$orig] = 4; $A[$orig] = $term; $B[$orig] = 0; } + continue; + } + + if ($ltag !== 2) { + throw new \RuntimeException('apply: invalid Fork left child'); + } + + $arg = whnf($x, $fuel); + while ($arg !== 0 && $TAG[$arg] === 4) { + $arg = $A[$arg]; + } + $atag = $TAG[$arg]; + + // apply (Fork (Fork a b) c) Leaf = a + if ($arg === 0) { + $term = $A[$left]; + if ($orig !== $term) { $TAG[$orig] = 4; $A[$orig] = $term; $B[$orig] = 0; } + continue; + } + + // apply (Fork (Fork a b) c) (Stem u) = b u + if ($atag === 1) { + $term = newAppFast($B[$left], $A[$arg], $TAG, $A, $B); + if ($orig !== $term) { $TAG[$orig] = 4; $A[$orig] = $term; $B[$orig] = 0; } + continue; + } + + // apply (Fork (Fork a b) c) (Fork u v) = (c u) v + if ($atag === 2) { + $term = newAppFast( + newAppFast($right, $A[$arg], $TAG, $A, $B), + $B[$arg], + $TAG, $A, $B + ); + if ($orig !== $term) { $TAG[$orig] = 4; $A[$orig] = $term; $B[$orig] = 0; } + continue; + } + + throw new \RuntimeException('apply: argument did not reduce to tree'); + } +} + +function normalize(int $term, int &$fuel): int +{ + $term = whnf($term, $fuel); + if (isStem($term)) return stem(normalize(stemChild($term), $fuel)); + if (isFork($term)) return fork(normalize(forkLeft($term), $fuel), normalize(forkRight($term), $fuel)); + return $term; +} + +function same_tree(int $a, int $b): bool +{ + $a = deref($a); $b = deref($b); + if ($a === $b) return true; + if (tag($a) !== tag($b)) return false; + if (isLeaf($a)) return true; + if (isStem($a)) return same_tree(stemChild($a), stemChild($b)); + if (isFork($a)) return same_tree(forkLeft($a), forkLeft($b)) && same_tree(forkRight($a), forkRight($b)); + if (isApp($a)) return same_tree(appFunc($a), appFunc($b)) && same_tree(appArg($a), appArg($b)); + return false; +} + +function typeTag(int $t): string +{ + return match (tag($t)) { + 0 => 'leaf', 1 => 'stem', 2 => 'fork', 3 => 'app', 4 => 'ind', default => 'unknown' + }; +} + +function formatTree(int $t, int $depth = 0): string +{ + $t = deref($t); + if ($depth > 200) return '...'; + if (isLeaf($t)) return 'Leaf'; + if (isStem($t)) return 'Stem(' . formatTree(stemChild($t), $depth + 1) . ')'; + if (isFork($t)) return 'Fork(' . formatTree(forkLeft($t), $depth + 1) . ', ' . formatTree(forkRight($t), $depth + 1) . ')'; + if (isApp($t)) return 'App(' . formatTree(appFunc($t), $depth + 1) . ', ' . formatTree(appArg($t), $depth + 1) . ')'; + return 'Unknown'; +} diff --git a/ext/php/src/kernel.php b/ext/php/src/kernel.php new file mode 100644 index 0000000..83bb70c --- /dev/null +++ b/ext/php/src/kernel.php @@ -0,0 +1,164 @@ +.ternary + * + * @param string $name e.g. 'run_arboricx_to_string' + * @return string The ternary string, or '' if file not found + */ +function loadKernelTernary(string $name): string +{ + // Determine the base directory: go up from this file to ext/php/src/ + $dir = dirname(__FILE__); + $file = $dir . '/' . $name . '.ternary'; + if (file_exists($file)) { + $content = file_get_contents($file); + if ($content !== false) { + return trim($content); + } + } + return ''; +} + +// ── Kernel constants (fallbacks — actual values loaded from .ternary files) ─ + +/** + * runArboricxToString — the primary Host ABI entrypoint. + * + * This is the compiled Tree Calculus term for: + * + * runArboricxToString = (bs args : + * bindResult (runArboricxArgsByName [] bs args) + * (value rest : + * wrapHostValue hostString? hostString value rest)) + * + * Loaded from ext/php/src/kernel_run_arboricx_to_string.ternary + * if it exists, otherwise falls back to the constant below. + * + * @var string + */ +const KERNEL_RUN_ARBORICX_TO_STRING = ''; + +/** + * runArboricxByNameToString — named-export variant. + * + * runArboricxByNameToString = (nameBytes bs args : ...) + * + * Loaded from ext/php/src/kernel_run_arboricx_by_name_to_string.ternary + * if it exists, otherwise falls back to the constant below. + * + * @var string + */ +const KERNEL_RUN_ARBORICX_BY_NAME_TO_STRING = ''; + +// ── Parser ────────────────────────────────────────────────────────────────── + +/** + * Parse a ternary string into a Tree Calculus value. + * + * Grammar: + * term → '0' → Leaf + * → '1' term → Stem(term) + * → '2' term term → Fork(term, term) + * + * @param string $s The ternary string to parse + * @param int &$pos Current position (passed by reference) + * @return int The parsed Tree value node id + */ +function parseTernary(string $s, int &$pos = 0): int +{ + if ($pos >= strlen($s)) { + throw new \RuntimeException('parseTernary: unexpected end of string'); + } + + $char = $s[$pos]; + $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" + ), + }; +} + +// ── Kernel accessors ──────────────────────────────────────────────────────── + +/** + * Get the runArboricxToString kernel tree. + * + * Tries loading from ext/php/src/kernel_run_arboricx_to_string.ternary first, + * then falls back to the KERNEL_RUN_ARBORICX_TO_STRING constant. + * + * Returns the parsed Tree Calculus value, or null if not configured. + */ +function getRunArboricxToString(): ?int +{ + // Try file first + $term = loadKernelTernary('kernel_run_arboricx_to_string'); + if ($term === '') { + $term = 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; +} + +/** + * Get the runArboricxByNameToString kernel tree. + * + * Tries loading from ext/php/src/kernel_run_arboricx_by_name_to_string.ternary + * first, then falls back to the KERNEL_RUN_ARBORICX_BY_NAME_TO_STRING constant. + */ +function getRunArboricxByNameToString(): ?int +{ + // Try file first + $term = loadKernelTernary('kernel_run_arboricx_by_name_to_string'); + if ($term === '') { + $term = KERNEL_RUN_ARBORICX_BY_NAME_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 new file mode 100644 index 0000000..f4582fd --- /dev/null +++ b/ext/php/src/kernel_run_arboricx_to_string.ternary @@ -0,0 +1 @@ +21202121212021200021201021200020102021212021201121212021200021201021200020101021212011212110021100102021202120121002121201121212021200021201021200020101020212021202120001021202220020211002020211002121201121211002110010202120212012102002121201121212021200021201021200020101020212021202120001021202220020211002020211002121202121201121212021200021201021200020101020212120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200022102010202010220201020201021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020102121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120101202102102100212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212021201120110012100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202120212000102120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212121202120002120102120002010202210202020202021002202102020210202100220210202020202100221021021021020202100220210202021020210022102020210202021002210210202020202100220202021021020210002121202120212000102120212120112000200212011010212120212021200010212021202120001021202120112121202120002120102120002010102220221000021201120110020212120212021200010212021202120001021202120112012002120112011201200212021212120212000212010212000201020212021202120001021201121212021200021201021200020101021201120212011212120212000212010212000201010212120112121202120002120102120002010102021202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201120102121201121212021200021201021200020101020212011201002121202120112121202120002120102120002010102120112021201121212021200021201021200020101021212021202120001021202120112121202120002120102120002010102120101202100212011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021202120001021201121212021200021201021200020101020212120112121100211001020212021212021201121212021200021201021200020101021201121202120212000102120212120112000200212011010212120212011212120212000212010212000201010212011212021202120001021202120212000102120212011201200212011201120120021202121212021200021201021200020102021202120212000102120112121202120002120102120002010102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002120112010212120112121202120002120102120002010102021201120100212021212120212000212010212000201020212021201121212021200021201021200020101021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021201120112021201121212021200021201021200020101021201121202120212000102120212011212120212000212010212000201010212010120210021201120112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102021202120212000102120212021200010212021201121212021200021201021200020101022202210000212011201100202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021100202021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202021002002110020020212120212011212120212000212010212000201010212021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200212011202120112121202120002120102120002010102120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202100200211002002120112011202120112121202120002120102120002010102120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202020210020021100200212011201120112021201121212021200021201021200020101021201120112011201120212011201100212120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000100202121202120212000102120212021200010020020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202021002002110020021212021202120001021202120112121202120002120102120002010102120112010212120212000212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120112120212021212120212000212010212000201020021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201120112120212000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201121202120212000102120212021200010212021200021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011202120212000102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002021212021201121212021200021201021200020101021202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002120112021201121212021200021201021200020101021201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200212011201120212011212120212000212010212000201010212011201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200212011201120112021201121212021200021201021200020101021201120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202020210020021100200212011201120112011202120112121202120002120102120002010102120112011201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202100200211002002120112011201120112011202120112121202120002120102120002010102120112011201120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202020202021002002110020021201120112011201120112011202120112121202120002120102120002010102120112011201120112011201120112021201120110021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010020212120212021200010212021202120001002002021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002121201121212021200021201021200020101020212011212110021100102120212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020022002022002022001021212011212120212000212010212000201010202120212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021201121212021200021201021200020101021201120112011201200212011201120112010212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120112121100211001021202121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200220020220020220020220020211002021212021202120001021202120112121202120002120102120002010102120112021201120110002021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212011212120212000212010212000201010212120112121100211001020212021201200212120112121202120002120102120002010102021202120002120112021212011212120212000212010212000201010202121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000221020102020102202010202010212120212011212120212000212010212000201010220010202121201121211002110010202120212120212011212120212000212010212000201010212011201200212120212000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021202120001021201120212120112121202120002120102120002010102021212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002210201020201022020102020102121202120212000102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102022001020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010212011212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002120101202102100212011201100202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021201121212021200021201021200020101021212022200202110020202110021202121212021212011200020022100202002121202120212000102120112121202120002120102120002010102021201120120021212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202022100022001021202121212021212011200020022100202002121202120212000102120112121202120002120102120002010102021201120120021212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202020022002022001021212021200021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201120110020212010121020210021212021201121212021200021201021200020101021201120120021201120102121202120002120112021200021201120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021201121212021200021201021200020101021212011212120212000212010212000201010202121202120212000102120212011212120212000212010212000201010212121201121211002110010202120212120212011212120212000212010212000201010212011201200212011212021200021201120212011212120212000212010212000201010212120212021200010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202200102120212121202120002120102120002010202120212021200010212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202022100020212120212000212011212021201120002120101202021002121202120112121202120002120102120002010102121201121212021200021201021200020101020212120212011212120212000212010212000201010212120212011212120212000212010212000201010212120212011212120212000212010212000201010212021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002200202200202200202200202200202200202200102021202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120112121100211001020212021201200212010112021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020212021200021212021201121212021200021201021200020101021201012100212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201120110021201120212011212120212000212010212000201010212120212120212011212120212000212010212000201010212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021201121212021200021201021200020101021201120112011201200212011201120112010212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120112121100211001020212021202120001021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102120212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020022002022002022002022002022002022001021202121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200220020220020220020220020220020220020220010202120112121202120002120102120002010102021201021201021201012020210020212011212120212000212010212000201010212011201120112010212011212021201121212021200021201021200020101021201120112010212120212021200010212011212120212000212010212000201010202120112021201120110002120112011202120212000102120112011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202120112121202120002120102120002010102121201121212021200021201021200020101020212120212021200010212021201121212021200021201021200020101021212120112121100211001020212021212021201121212021200021201021200020101021201120120021201121202120002120112021201121212021200021201021200020101021212021202120001021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020220010212021212120212000212010212000201020212021202120001021202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202020202202100020212120212000212011212021201120002120101202021002121202120112121202120002120102120002010102121201121212021200021201021200020101020212120212011212120212000212010212000201010212120212011212120212000212010212000201010212120212011212120212000212010212000201010212021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002200202200202200202200202200202200202200102021202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120112121100211001020212021201200212010112021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020212021200021212021201121212021200021201021200020101021201012100212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201120110021201120212011212120212000212010212000201010212120212120212011212120212000212010212000201010212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021201121212021200021201021200020101021201120112011201200212011201120112010212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120112121100211001020212021202120001021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102120212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020022002022002022002022002022002022001021202121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200220020220020220020220020220020220020220010202120112121202120002120102120002010102021201021201021201012020210020212011212120212000212010212000201010202120112121202120002120102120002010102021212011212120212000212010212000201010202120120021201120102121202120112121202120002120102120002010102121202120112121202120002120102120002010102120112012002121202120212000102120212011212120212000212010212000201010212011201120102121202120212000102120112121202120002120102120002010102021201120212011201100212120112121202120002120102120002010102002021201120212021200010212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212120212011212120212000212010212000201010212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010220010202210202020202102100220210202021021021002202102020202102100221021021021020210210022021020202102102100221020202102021021002210210202020210210022020202102102102100220210210210202100220210202020210210022102021020210210210022021021021020210210022020210202021021002202021021020210210022102021020202102100220210210210202100221020210210202102100221020202020210210022021021021020210210022102020210202102100220210210202021021002210202102020210210022102102020210210210022020210202102102100220210210210202100220210210202102102100221020202021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001022002021100202202021020210210210022021020202102102100221020210202021021002210202102020210210022102021021020210022102102020202102100221020202020210210022020210210202102100221021020202021021002210202102021021021002202021021020210210022102021020210210210022102102020210210210022102021021020210022102021020202102100220202021021021021002210202102020210210022102102020202102100221020210202102102100220202102021021021002210202020202102100220210202020210210022020210210202102100221020210202021021002210202102102021002210210210210202102100220210202020210210022021020210202102100221020210202021021002210210202020210210022020210202102102100021212022200202110020202110021212021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001021202200102120220020211002200202110020220202102021021021002202102020210210210022102021020202102100221020210202021021002210202102102021002210210202020210210022102020202021021002202021021020210210022102102020202102100221020210202102102100220202102102021021002210202102021021021002210210202021021021002202102102102021002202102102021021021002210202020210210002121202220020211002020211002121202121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102120220010212022002021100212022002021100220020211002022102102020210210210022020202102021021002210202020202102100220210202021021002210202102021021002202102102021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001021202200202110021202200202110021202200202110022002021100202210202020202102100220210202021021021002202102020202102100221021021021020210210022021020202102102100221020202102021021002210210202020210210022020202102102102100220210210210202100221020210210202102100221020210202021021002202102020210210210022102102021020210210022020210210202102100221020210202021021002202102102102021002202102102102021021002210210210210202102100220202102020210210022102021020202102100220210210210202100220210210202102102100221020202021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001021202200202110021202200202110021202200202110021202200202110022002021100202210202020202102100220210202021021021002202102020202102100221021021021020210210022021020202102102100221020202102021021002210210202020210210022020202102102102100220210210210202100221020210210202102100221020210202021021002202102020210210210022102102021020210210022020210210202102100221020210202021021002202102102102021002202020202102102100221020202020210210022102020210210210210022020210210202102100221021021021020210210022102020202021021002202021020202102100220210210210202100220210210202102102100221020202021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001021202200202110021202200202110021202200202110021202200202110021202200202110022002021100202202021020210210210022021020202102102100221020210202021021002210202102020210210022102021021020210022102102020202102100221020202020210210022020210210202102100221021020202021021002210202102021021021002202021021020210210022102021020210210210022102102020210210210022021021021020210022021021020210210210022102020202102100021212022200202110020202110021212021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001021202200102120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002200202110020220210210210202102100221021021021020210210022021020202102102100221020210210202102100221020202020210210022020210210202102100221020210210202100221021021021020210210022021020202102102100220202102020210210022102021020202102100220210202021021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110022002021100202210202020202102100220210202021021021002202102020202102100221021021021020210210022021020202102102100221020202102021021002210210202020210210022020202102102102100220210210210202100221020202020210210022021020202021021002210202021020210210022021021021020210022020210202102102100220210202021021021002210202102020210210022102021020202102100220210210210202100220210210202102102100221020202021021000212120222002021100202021100212120212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212022001021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110022002021100202002121202220020211002020211002120221020020200212022100202002120220010212022002021100212022002021100212022002021100212022002021100212022002021100212022002021100212022002021100212022002021100212022002021100212022002021100220020211002120221020020200212022100202002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002120220020211002200202110021212021200021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201120110020212010121020210210020212011212120212000212010212000201010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212121202120002120102120002010202210202020202021002202102020210202100220210202020202100221020210210202021002202102102102020210022021021020202021002210210202021020210022020210202102021000212120212021200010212021212011200020021201101021212021202120001021202120212000102120212011212120212000212010212000201010222022100002120112011002021212021202120001021202120212000102120212011201200212011201120120021202121212021200021201021200020102021202120212000102120112121202120002120102120002010102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002120112010212120112121202120002120102120002010102021201120100212120212011212120212000212010212000201010212011202120112121202120002120102120002010102121202120212000102120212011212120212000212010212000201010212010120210021201120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120212000102120112121202120002120102120002010102021212011212110021100102021202121202120112121202120002120102120002010102120112120212021200010212021212011200020021201101021212021201121212021200021201021200020101021201121202120212000102120212021200010212021201120120021201120112012002120212121202120002120102120002010202120212021200010212011212120212000212010212000201010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212011201021212011212120212000212010212000201010202120112010021202121212021200021201021200020102021202120112121202120002120102120002010102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120112120212021200010212021201121212021200021201021200020101021201012021002120112011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010202120212021200010212021202120001021202120112121202120002120102120002010102220221000021201120110020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102110020202121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002020212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200202021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200202120212121202120002120102120002010202120112011002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020020212120212011212120212000212010212000201010212021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200202120212121202120002120102120002010202120112011002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020021201120212011212120212000212010212000201010212011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002120112011201120212011212120212000212010212000201010212011201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200202120212121202120002120102120002010202120112011002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020021201120112011201120212011212120212000212010212000201010212011201120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002120112011201120112011202120112121202120002120102120002010102120112011201120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002120112011201120112011201120212011212120212000212010212000201010212011201120112011201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200202120212121202120002120102120002010202120112011002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020021201120112011201120112011201120212011212120212000212010212000201010212011201120112011201120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020021201120112011201120112011201120112021201121212021200021201021200020101021201120112011201120112011201120212121202120002120102120002010202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011212021202120001021202120212000102120212000212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112021202120001021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002121201121212021200021201021200020101020212011212110021100102121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200212011201120112011201120112011201120212021200010212011201120112011201120112011201120212011212120212000212010212000201010212011201120112011201120112011201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021002002110020021201120112011201120112011201120112011202120112121202120002120102120002010102120112011201120112011201120112011201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002120112011201120112011201120112011201120112021201121212021200021201021200020101021201120112011201120112011201120112011202121212021200021201021200020102021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021202121212021200021201021200020102002120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112120212021200010212021202120001021202120002120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120212021200010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202020210020021100200202121202120112121202120002120102120002010102120112021201120110002021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002121201121212021200021201021200020101020212011212110021100102121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200212011201120112011201120112011201120112011202120212000102120112011201120112011201120112011201120112021201121212021200021201021200020101021201120112011201120112011201120112011201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002120112011201120112011201120112011201120112011202120112121202120002120102120002010102120112011201120112011201120112011201120112021212120212000212010212000201020212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201120112120212000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201121202120212000102120212021200010212021200021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011202120212000102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002021202121212021200021201021200020102021201120110021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021202121212021200021201021200020102002121202120002120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020211002121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200202121202120112121202120002120102120002010102120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002021202121212021200021201021200020102021201120110021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021202121212021200021201021200020102002121202120002120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020211002121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200212011202120112121202120002120102120002010102120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200202120212121202120002120102120002010202120112011002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021201120112011202120112011002121202120212000102120212021200010212021202120001002021212021202120001021202120212000100200202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202020202100200211002002121201121212021200021201021200020101020212011212110021100102121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200212011201120112011201120112011201120112011201120212021200010212011201120112011201120112011201120112011201120212011212120212000212010212000201010212011201120112011201120112011201120112011201120112021201120110021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010212021202120001002021212021202120001021202120212000102120212021200010020212120212021200010212021202120001002002021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212021212120212000212010212000201020212011201100212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102120212021212120212000212010212000201020021212021200021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202110021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002021212021201121212021200021201021200020101021212021202120001021202120112121202120002120102120002010102120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002120112021201121212021200021201021200020101021202121212021200021201021200020102021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021212120212000212010212000201020021212021201121212021200021201021200020101021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002021212011212110021100102021202120212121202120002120102120002010202121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120212000212011201120212000212011212021202120001021202120212000102120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201101021212021201121212021200021201021200020101021201120112010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200202121202120112121202120002120102120002010102121202120212000102120212011212120212000212010212000201010212011202120112011000202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200212120112121202120002120102120002010102021201121211002110010212011202120212000102120112021201121212021200021201021200020101021201120112010212021212120212000212010212000201020211002120112021200021201120112021201120110021212021202120001021202120212000100200202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011212021202120001021202120212000102120212000212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112021202120001021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002021212021201121212021200021201021200020101021212021202120001021202120112121202120002120102120002010102120112021201120110002021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021202121212021200021201021200020102002121202120002120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020211002121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002121201121212021200021201021200020101020212011212110021100102121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002120112010212012002120112010212120212011212120212000212010212000201010212011201021212011212120212000212010212000201010202120212120212011212120212000212010212000201010212021212120212000212010212000201020212011201021212011212120212000212010212000201010202120112011002120112021202120001021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212021200010212120112121100211001020212021212021202120001021202120002120212121202120002120102120002010202020202210202021000212011202120012022102020210002120212121202120002120102120002010202200202200202110021201120212021200010212021212120212000212010212000201020212121202121201120002002210020200212120212021200010212011212120212000212010212000201010202120112012002121202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020200212011202120002120112011202121212011200020202102002020202102002120212121202120002120102120002010202121202220020211002020211002120220212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202100202002200212010021212021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121201121211002110010202120212012002120101120212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202102020202021002120112021200021212021200021201120212000212011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201120212121202120002120102120002010202120102121202120112011000200212011201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212011212120212000212010212000201010212120212000102021202121212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202020202100200212121212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010202100200202120112121202120002120102120002010102121202120002120112021200021201120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021201121212021200021201021200020101021212021200010202120212121212011212110021100102021202121202120112121202120002120102120002010102120112011201200212011212021200021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112011201120212121201120002020020202002120112021212120212000212010212000201020212021202120001002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202020202020210020021212121201121211002110010202120212011212021202120001021201121212021200021201021200020101021201120112011201200212011201120112010212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120112121100211001020210020020212011212120212000212010212000201010212011201120112010212011202121212021200021201021200020102021201120102120212121202120002120102120002010200212011202120112011000212011201120212021200010212011201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212011212120212000212010212000201010212120212000102021202121212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202020202100200212121212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010202102020202021002002021201121212021200021201021200020101020212120112121202120002120102120002010102021212011212110021100102021202121202120112121202120002120102120002010102120112012002120112120212000212011202120112121202120002120102120002010102121202120212000102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102022001021202121212021200021201021200020102021202120212000102120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200002120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020220020211002021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121212021200021201021200020102022102020202020210022021020202102021002202102020202021002210210210210202021002202102020210202100221020202102020210022102102020202021002202020210210202100021212021202120001021202121201120002002120110102121202120212000102120212021200010212021201121212021200021201021200020101022202210000212011201100202121202120212000102120212021200010212021201120120021201120112012002120212121202120002120102120002010202120212021200010212011212120212000212010212000201010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212011201021212011212120212000212010212000201010202120112010021212021201121212021200021201021200020101021201120212011212120212000212010212000201010212120212021200010212021201121212021200021201021200020101021201012021002120112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212021200010212011212120212000212010212000201010202121201121211002110010202120212120212011212120212000212010212000201010212011212021202120001021202121201120002002120110102121202120112121202120002120102120002010102120112120212021200010212021202120001021202120112012002120112011201200212021212120212000212010212000201020212021202120001021201121212021200021201021200020101021201120212011212120212000212010212000201010212120112121202120002120102120002010102021202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201120102121201121212021200021201021200020101020212011201002120212121202120002120102120002010202120212011212120212000212010212000201010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212011201120212011212120212000212010212000201010212011212021202120001021202120112121202120002120102120002010102120101202100212011201120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021202120001021201121212021200021201021200020101020212021202120001021202120212000102120212011212120212000212010212000201010222022100002120112011002021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010211002020212120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200202121202120112121202120002120102120002010102120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202100200211002002120112021201121212021200021201021200020101021201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202021002002110020021201120112021201121212021200021201021200020101021201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202100200211002002120112011201120212011212120212000212010212000201010212011201120112011202120112011002121202120212000102120212021200010212021202120001021202120212000100202121202120212000102120212021200010212021202120001002021212021202120001021202120212000100200202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020210020021100200212120212021200010212021201121212021200021201021200020101021201120102121202120002120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021201121202120212121202120002120102120002010200212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011201121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011212021202120001021202120212000102120212000212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112021202120001021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202021002002110020020212120212011212120212000212010212000201010212021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202021002002110020021201120212011212120212000212010212000201010212011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002120112011202120112121202120002120102120002010102120112011202121212021200021201021200020102021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202100200211002002120112011201120212011212120212000212010212000201010212011201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202100200211002002120112011201120112021201121212021200021201021200020101021201120112011201120212121202120002120102120002010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212121212121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102020202021002002110020021201120112011201120112021201121212021200021201021200020101021201120112011201120112021212120212000212010212000201020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202020210020021100200212011201120112011201120112021201121212021200021201021200020101021201120112011201120112011201120212011201100212120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010212021202120001021202120212000100202121202120212000102120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000102120212021200010020212120212021200010212021202120001021202120212000100202121202120212000102120212021200010020020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202021002002110020021212011212120212000212010212000201010202120112121100211001021202121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200220020220020220010212120112121202120002120102120002010102021202120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010212021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002200202200202200202200202110020212120212021200010212021201121212021200021201021200020101021201120212011201100020212011202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202120112121202120002120102120002010102121201121211002110010202120212012002121201121212021200021201021200020101020212021200021201120212120112121202120002120102120002010102021212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002210201020201022020102020102121202120112121202120002120102120002010102200102021212011212110021100102021202121202120112121202120002120102120002010102120112012002121202120002120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212021200010212011202121201121212021200021201021200020101020212120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200022102010202010220201020201021212021202120001021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020220010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102120112120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021201012021021002120112011002021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212011212120212000212010212000201010212120222002021100202021100212021212120212120112000200221002020021212021202120001021201121212021200021201021200020101020212011201200212120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020221000220010212021212120212120112000200221002020021212021202120001021201121212021200021201021200020101020212011201200212120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020200220020220010212120212000212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212011201100202120101210202100212120212011212120212000212010212000201010212011201200212011201021201121202120112121202120002120102120002010102120112010212120212011212120212000212010212000201010212011201021212011212120212000212010212000201010202120112011002021202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121202121201121212021200021201021200020101020212012002120112012002121202120112121202120002120102120002010102121202120002120112021200011201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200020212011201002021202120212000102120112121202120002120102120002010102121212121212011212110021100102021202120112120212021200010212021202120001021202120212000102120112121202120002120102120002010102120112120212000212011202120002120112011202120002120112011201120212000212011201120112011202121201120002002121202120212000102120212011212120212000212010212000201010212120212011212120212000212010212000201010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102120101210020212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201121202120002120112021202120001021201120212021200010212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120212011212120212000212010212000201010212011201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120112021202120001021201120112011202120112121202120002120102120002010102120112021212120212000212010212000201020212011212120212000212010212000201010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021200021201120212021200010212011202120212000102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020202020210020021100200202121202120112121202120002120102120002010102121202120212000102120212011212120212000212010212000201010212011202120112011000202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021201121212021200021201021200020101021212011212110021100102021202120120021212011212120212000212010212000201010202120212021200010212021212011212120212000212010212000201010202121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000221020102020102202010202010212022102002020021202121202121201121212021200021201021200020101020212120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200022102010202010220201020201021212120212120112000200221002020021212021202120001021201121212021200021201021200020101020212011201200212120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020021212021212011212120212000212010212000201010202121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000221020102020102202010202010212120222002021100202021100212022021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020210020200220021201002121202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212120112121100211001020212021201200212010112021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001020210202020202100212120222002021100202021100212022021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202100202002200212010021212021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121201121211002110010202120212012002120101120212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202102020202020210022002022002021100212120112121202120002120102120002010102021201121211002110010212011212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002120101202020210021212021201121212021200021201021200020101021212011212110021100102021202120120021212011212120212000212010212000201010202120212000212011202121201121212021200021201021200020101020212120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200022102010202010220201020201021212021201121212021200021201021200020101022001020212120112121100211001020212021212021201121212021200021201021200020101021201120120021212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120212000102120112021212011212120212000212010212000201010202121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000221020102020102202010202010212120212021200010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202200102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001021212011212120212000212010212000201010202120112121100211001021201121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212010121021021002121202120112121202120002120102120002010102121212011212110021100102021202121202120112121202120002120102120002010102120112012100212120212000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021202120001021201120222002021100202021100212120112121202120002120102120002010102021202121201121211002110010202120212120212011212120212000212010212000201010212011201210021212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120212000102120112022200202110020202110021212011212120212000212010212000201010202121201121212021200021201021200020101020212120112121100211001020212021212021201121212021200021201021200020101021201120120021212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120212000102120112021212011212120212000212010212000201010202121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000221020102020102202010202010212120212021200010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202200102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212021212021212120112000202002020200212121202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120021202121212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202020202100200212121212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010202100200200212120021202121212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202020202100200212121212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010202100200212120021202121212120112121100211001020212021212021201121212021200021201021200020101021201120112012002120112120212000212011202120212000102120112021201121212021200021201021200020101021212011212120212000212010212000201010202121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010212011201120112011202121212011200020200202020021201120212121202120002120102120002010202120212021200010021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102020202020202100200212121212011212110021100102021202120112120212021200010212011212120212000212010212000201010212011201120112012002120112011201120102120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021201121211002110010202102020202021002002002121202220020211002020211002120220212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202100202002200212010021212021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121201121211002110010202120212012002120101120212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202102020202021002121212021212011200020022100202002121202120212000102120112121202120002120102120002010102021201120120021212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212120112121100211001020212021212021201121212021200021201021200020101021201121202121201120002002210020200212120212011212120212000212010212000201010212011201120120021212021201121212021200021201021200020101011202120112121202120002120102120002010102021202120112121202120002120102120002010102120112021202120001021201120222002021100202021100212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020212021202120001021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202002200202200202110020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010211002121202120002120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002120112011002021201012102020210021201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212021202121212021200021201021200020102002120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202120112011212021200021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112120212021200010212021202120001021202120002120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120212121202120002120102120002010202120112021201121212021200021201021200020101021212011212120212000212010212000201010200212011201120212021200010212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021202120212000102120212021200010212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020202020210020021100200202121202120112121202120002120102120002010102121202120002120112021201121212021200021201021200020101021201120112021201120110021212021202120001021202120212000100200202120112021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021202120212121202120002120102120002010200212120212000212021212120212000212010212000201020021212011212120212000212010212000201010202121201121211002110010202120212011212021202120001021202120212000102120212021200010212011212120212000212010212000201010212011212021200021201120212000212011201120212000212011201120112021200021201120112011201120212120112000200212120212021200010212021201121212021200021201021200020101021212021201121212021200021201021200020101021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010212010121002021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112120212000212011202120212000102120112021202120001021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021201120112021212120212000212010212000201020212011202120112121202120002120102120002010102121201121212021200021201021200020101020021201120112011202120212000102120112011201120212011212120212000212010212000201010212011202121212021200021201021200020102021201121212021200021201021200020101021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021202120002120112021202120001021201120212021200010212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120112121202120002120102120002010102021202120112011002121201121211002110010202120212012002121202120112121202120002120102120002010101120212120112121100211001020212021201221100021212011212120212000212010212000201010202120212021200010212021202120001002121201121212021200021201021200020101020212011212110021100102021202120112121202120002120102120002010102102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021100212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020020212021212011212120212000212010212000201010202120120021201120120021212021201121212021200021201021200020101021212021200021201120212000112011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000202120112010020212021202120001021201121212021200021201021200020101021212121212120112121100211001020212021201121202120212000102120212021200010212021202120001021201121212021200021201021200020101021201121202120002120112021200021201120112021200021201120112011202120002120112011201120112021212011200020021212021202120001021202120112121202120002120102120002010102121202120112121202120002120102120002010102120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212021201120110021212011212110021100102021202120120021212021201121212021200021201021200020101011202121201121211002110010202120212012211000212120112121202120002120102120002010102021202120212000102120212021200010021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021020021212011212120212000212010212000201010202120112121100211001020212021201121212021200021201021200020101021201012100202120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102120112011212021200021201120212021200010212011202120212000102120112021202120001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102121202120112121202120002120102120002010102120112011202121212021200021201021200020102021201120212011212120212000212010212000201010212120112121202120002120102120002010102002120112011201120212021200010212011201120112021201121212021200021201021200020101021201120212121202120002120102120002010202120112121202120002120102120002010102120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212021202120001021202120212000102120212000212011202120212000102120112021202120001021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120212011201100212120112121100211001020212021201200212120212011212120212000212010212000201010112021212011212110021100102021202120122110002121201121212021200021201021200020101020212021202120001021202120212000100212120112121202120002120102120002010102021201121211002110010202120212011212120212000212010212000201010210200212120112121202120002120102120002010102021201121211002110010212120112121202120002120102120002010102021201121211002110010202020210020021100200212120112121202120002120102120002010102021201121211002110010212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020020212120212000212120212000212011202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212011201100202120101202100202210020200212011201120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212011212120212000212010212000201010212120112121202120002120102120002010102021212021202120001021202120112121202120002120102120002010102121212011212110021100102021202121202120112121202120002120102120002010102120112012002120112120212000212011202120112121202120002120102120002010102121202120212000102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102022001021202121212021200021201021200020102021202120212000102120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200002120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020202020220210002021212021200021201121202120112000212010120202100212120212011212120212000212010212000201010212120112121202120002120102120002010102021212021201121212021200021201021200020101021212021201121212021200021201021200020101021212021201121212021200021201021200020101021202121212120112121100211001020212021212021201121212021200021201021200020101021201120122110002121202120002120112021201121212021200021201021200020101021201120112021202120001021212011212120212000212010212000201010202120112121202120002120102120002010102021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202121201121212021200021201021200020101020212021212120212000212010212000201020021212011212110021100102021202120112021212120212000212010212000201020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202020202100212011201120212000212011201121202120212000102121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000212120212011212120212000212010212000201010212120212000212011202120002120112120212011212120212000212010212000201010102120112011202120112000212011201120212120212121201120002020020202001021202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021202121212021200021201021200020102021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212021200010212110020021201120212121202120002120102120002010202120212021200010212120212000212011202121212011200020200202020002121202120212000102120222002021100202021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010200220020220020220020220020220020220020220010202120212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212011212110021100102021202120120021201011202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102121201121212021200021201021200020101020212011212110021100102021202120002121202120112121202120002120102120002010102120101210021201120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212011212120212000212010212000201010202120112011002120112021201121212021200021201021200020101021212021212021201121212021200021201021200020101021202121212021200021201021200020102002121201121212021200021201021200020101020212120112121100211001020212021201121202120212000102120112121202120002120102120002010102120112011201120120021201120112011201021201120112120212000212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021212021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120212021200010212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201121212021200021201021200020101020212011212110021100102021202120212000102120212121202120002120102120002010200212120112121202120002120102120002010102021212011212110021100102021202121202120112121202120002120102120002010102120112011201200212011212021200021201120212021200010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001021201120112011201120212121201120002020020202002120112021212120212000212010212000201020212021202120001002120112011202120112121202120002120102120002010102120212121202120002120102120002010202120212011212120212000212010212000201010212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120212021200010212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010212021212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021212011212120212000212010212000201010202120212121202120002120102120002010200212120112121100211001020212021201120212121202120002120102120002010202121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102020202021002120112011202120002120112011212021202120001021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121202120112121202120002120102120002010102121202120002120112021200021201121202120112121202120002120102120002010101021201120112021201120002120112011202121202121212011200020200202020010212021100212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212021212120212000212010212000201020212120112121100211001020212021201221000212120212001110212010112010200212120112121202120002120102120002010102021201121211002110010212011202120212000102121100200212011202121212021200021201021200020102021202120212000102121202120002120112021212120112000202002020200021212021202120001021202220020211002020211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020021201120112021201121212021200021201021200020101021202121212021200021201021200020102021202120112121202120002120102120002010102121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021202120212000102120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102002200202200202200202200202200202200102120212121212011212110021100102021202121202120112121202120002120102120002010102120112012211000212120212000212011202120112121202120002120102120002010102120112011202120212000102121201121212021200021201021200020101020212011212120212000212010212000201010202120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020212120112121202120002120102120002010102021202121212021200021201021200020102002121201121211002110010202120212011202121212021200021201021200020102021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020202020210021201120112021200021201120112120212021200010212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200021212021201121212021200021201021200020101021212021200021201120212000212011212021201121212021200021201021200020101010212011201120212011200021201120112021212021212120112000202002020200102120211002121212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102002120212121202120002120102120002010202121201121211002110010202120212012210002121202120011102120101120102002121201121212021200021201021200020101020212011212110021100102120112021202120001021211002002120112021212120212000212010212000201020212021202120001021212021200021201120212121201120002020020202000212120212021200010212022200202110020202110021212120112121100211001020212021212021200122102002020021202121212021200021201021200020102020200112021200102120112011201202002121202120112121202120002120102120002010101120212011212120212000212010212000201010212011202120112121202120002120102120002010102120112011202120212000101120112022200202110020202110021212011212120212000212010212000201010202120112121100211001020020212121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010200212011201120212011212120212000212010212000201010212021212120212000212010212000201020212021201121212021200021201021200020101021212011212110021100102021202120122100021212021200111021201011201020021212011212120212000212010212000201010202120112121100211001021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212021202120001021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020022002022002022002022002022002022002022001020212011212120212000212010212000201010202120102120102120101202021002021201121212021200021201021200020101020212011212120212000212010212000201010220020220010202120212120112121202120002120102120002010102021201200212011201200212120212011212120212000212010212000201010212120212000212011202120001120112021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002021201120100202120212021200010212011212120212000212010212000201010212120212120212000212120212021200010212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121212120212011200022202202021000021212021202120001021212021212021201121212021200021201021200020101021201010212120212011212120212000212010212000201010102021201120002121201120110020020202202021000202210020200202121201120110020020202020220202100021212120112121100211001020212021212021201121212021200021201021200020101021201120120021201121202120002120112021201121212021200021201021200020101021212021202120001021212011212110021100102021202121202120112121202120002120102120002010102120112120212120112000200221002020021212021201121212021200021201021200020101021201120112012002121202120112121202120002120102120002010101120212011212120212000212010212000201010202120212011212120212000212010212000201010212011202120212000102120112022200202110020202110021212011212110021100102021202121202120012210200202002120212121202120002120102120002010202020011202120010212011201120120200212120212011212120212000212010212000201010112021201121212021200021201021200020101021201120212011212120212000212010212000201010212011201120212021200010112011202220020211002020211002121201121212021200021201021200020101020212011212110021100102021202120212000102120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020220010212021212120212000212010212000201020212021202120001021202121202120112121202120002120102120002010102120101021212021201121212021200021201021200020101010202120112000021201120212011212120212000212010212000201010212120112121202120002120102120002010102021201121212021200021201021200020101020212011212120212000212010212000201010212120112121202120002120102120002010102021201121211002110010202210202102102021021002210202020202102100221020202102021021002202102102102021021000212011202220220202100021212011201100200202020220202100021212011212110021100102021202121202120112121202120002120102120002010102120112012002120112120212000212011202120112121202120002120102120002010102121202120212000102121201121211002110010202120212120212011212120212000212010212000201010212011212021212011200020022100202002121202120112121202120002120102120002010102120112011201200212120212011212120212000212010212000201010112021201121212021200021201021200020101020212021201121212021200021201021200020101021201120212021200010212011202220020211002020211002121201121211002110010202120212120212001221020020200212021212120212000212010212000201020202001120212001021201120112012020021212021201121212021200021201021200020101011202120112121202120002120102120002010102120112021201121212021200021201021200020101021201120112021202120001011201120222002021100202021100212120112121202120002120102120002010102021201121211002110010202120212021200010212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102022001021202121212021200021201021200020102021202120212000102120212120212011212120212000212010212000201010212010102121202120112121202120002120102120002010101020212011200002120112021201121212021200021201021200020101021212011212120212000212010212000201010202120112121202120002120102120002010102021201121212021200021201021200020101021212011212120212000212010212000201010202120112121100211001020221002020021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110021202200202110022002021100200202120112021201120110021212011212120212000212010212000201010202121201121212021200021201021200020101020212121201121211002110010202120212120212011212120212000212010212000201010212011201221100021212021200021201120212011212120212000212010212000201010212011201120212021200010212120112121202120002120102120002010102021201121212021200021201021200020101020212011202120112121202120002120102120002010102121201121212021200021201021200020101020212011212120212000212010212000201010202120112121202120002120102120002010102121201121212021200021201021200020101020212011212110021100102021100 \ No newline at end of file diff --git a/notes/php-cli-run-flags.md b/notes/php-cli-run-flags.md new file mode 100644 index 0000000..cca3f36 --- /dev/null +++ b/notes/php-cli-run-flags.md @@ -0,0 +1,9 @@ +# PHP Recommended Run Flags + +```php +php -d memory_limit=4G \ + -d opcache.enable_cli=1 \ + -d opcache.jit_buffer_size=256M \ + -d opcache.jit=tracing \ + ext/php/run.php run $PATH_TO_ARBORIX_BUNDLE $ARGS +``` diff --git a/src/Main.hs b/src/Main.hs index 16ba94d..6138a3a 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -26,7 +26,7 @@ import qualified Data.Map as Map data TricuArgs = Repl - | Evaluate { file :: [FilePath], form :: EvaluatedForm } + | Evaluate { file :: [FilePath], form :: EvaluatedForm, outFile :: FilePath } | TDecode { file :: [FilePath] } | Compile { inputFile :: FilePath, outFile :: FilePath, names :: [String] } | Export { hash :: String, exportNameOpt :: String, outFile :: FilePath, names :: [String] } @@ -49,6 +49,8 @@ evaluateMode = Evaluate &= help "Optional output form: (tree|fsl|ast|ternary|ascii|decode).\n \ \ Defaults to tricu-compatible `t` tree form." &= name "t" + , outFile = def &= help "Optional output file path. Defaults to stdout." + &= name "o" &= typ "FILE" } &= help "Evaluate tricu and return the result of the final expression." &= explicit @@ -123,7 +125,7 @@ main = do putStrLn "Welcome to the tricu REPL" putStrLn "You may exit with `CTRL+D` or the `!exit` command." repl - Evaluate { file = filePaths, form = outputForm } -> do + Evaluate { file = filePaths, form = outputForm, outFile = evalOutFile } -> do maybeDbPath <- lookupEnv "TRICU_DB_PATH" evalResult <- case filePaths of [] -> do @@ -136,7 +138,7 @@ main = do Nothing -> return Map.empty input <- getContents pure $ runTricuTEnv initialEnv input - (_:restFilePaths) -> do + filePaths@(_:_) -> do initialEnv <- case maybeDbPath of Just _ -> do conn <- initContentStore @@ -144,10 +146,12 @@ main = do close conn return env Nothing -> return Map.empty - finalEnv <- foldM evaluateFileWithContext initialEnv restFilePaths + finalEnv <- foldM evaluateFileWithContext initialEnv filePaths pure $ mainResult finalEnv let fRes = formatT outputForm evalResult - putStr fRes + if null evalOutFile + then putStr fRes + else writeFile evalOutFile fRes TDecode { file = filePaths } -> do value <- case filePaths of [] -> getContents